文件重命名与文件删除
C语言除了提供文件的读写函数外,还有文件的重命名和文件删除函数,接下来对文件重命名函数和文件删除函数分别进行讲解。
1、rename()函数
rename()函数用于对文件重命名,函数声明如下所示:
int rename(const char * oldname,const char * newname);
上述函数声明中,参数oldname表示要修改的文件名,参数newname表示修改后文件名,修改成功则返回0,如果修改的文件名与以修改的文件名重名,或者修改的文件不存在时返回非0值。
接下来通过一个案例演示如何使用rename()函数对文件重命名,如例1所示。
例1 renameFile.c
1 #define _CRT_SECURE_NO_WARNINGS
2 #include <stdio.h>
3 int main()
4 {
5 FILE* fp;
6 char s[20] = {0};
7 int x=rename("hellow.txt","1.txt");
8 printf("修改状态:%d\n", x);
9 fp = fopen("1.txt", "r");
10 while (!feof(fp))
11 {
12 fgets(s, 20, fp);
13 }
14 fclose(fp);
15 printf("%s\n", s);
16 return 0;
17 }
例1运行结果如图1所示
图1 例1运行结果
由图1可知,hellow.txt文件名修改成功,打开修改后的文件内容如图2所示。
图2 1.txt文件内容
2、remove()函数
remove()函数用于删除文件,函数声明如下所示:
int remove(const char *Filename);
remove()函数只有一个参数Filename,表示要删除的文件名。删除成功返回0,删除失败返回-1。 接下来以删除文件“1.txt”为例,讲解如何使用remove()函数删除文件,如例2所示。
例2 removeFile.c
1 #define _CRT_SECURE_NO_WARNINGS
2 #include <stdio.h>
3 int main()
4 {
5 FILE* fp;
6 char* s[20] = { 0 };
7 int x=remove("1.txt");
8 printf("修改状态:%d\n", x);
9 fp = fopen("1.txt", "r");
10 if (fp==NULL)
11 {
12 printf("文件打开失败\n");
13 exit(0);
14 }
15 while (!feof(fp))
16 {
17 fgets(s, 20, fp);
18 }
19 fclose(fp);
20 printf("%s\n", s);
21 return 0;
22 }
例2运行结果如图3所示。
图3 例3运行结果
由图3可知,文件删除状态为0,表明“1.txt”文件删除成功,再次打开“1.txt”文件时打开失败。