C语⾔rename()函数:重命名⽂件或⽬录
头⽂件:#include <stdio.h>
函数rename()⽤于重命名⽂件、改变⽂件路径或更改⽬录名称,其原型为
int rename(char * oldname, char * newname);
【参数】oldname为旧⽂件名,newname为新⽂件名。
【返回值】修改⽂件名成功则返回0,否则返回-1。
重命名⽂件:
如果newname指定的⽂件存在,则会被删除。
如果newname与oldname不在⼀个⽬录下,则相当于移动⽂件。
重命名⽬录:
如果oldname和oldname都为⽬录,则重命名⽬录。
梦见被猫咬如果newname指定的⽬录存在且为空⽬录,则先将newname删除。
对于newname和oldname两个⽬录,调⽤进程必须有写权限。
【实例】⼀个简单的修改⽂件名的程序。
1. #include<stdio.h>
2. #include <fcntl.h>
3. int main(void)
4. {
5. char oldname[100], newname[100];
6. /* prompt for file to rename and new name */
7. printf("请告诉我⼀个⽂件的完整路径: ");
8. gets(oldname);
9. printf("您想修改为: ");
10. gets(newname);
11. /* 更改⽂件名 */
12. if (rename(oldname, newname) == 0)
13. printf("已经把⽂件 %s 修改为 %s.\n", oldname, newname);
14. else
15. perror("rename");
16. return 0;
17. }
#include<stdio.h>
#include <fcntl.h>
int main(void)
{
杨丽萍无缘春晚char oldname[100], newname[100];
/* prompt for file to rename and new name */
printf("请告诉我⼀个⽂件的完整路径: ");
gets(oldname);
printf("您想修改为: ");
gets(newname);
/* 更改⽂件名 */
if (rename(oldname, newname) == 0)
printf("已经把⽂件 %s 修改为 %s.\n", oldname, newname);
给导师的新年祝福else
perror("rename");
return 0;借方和贷方
}
运⾏结果:
请告诉我⼀个⽂件的完整路径:b
您想修改为:b
已经把⽂件test. ncb修改为test111. ncb李小璐出了轨男人叫什么名字
例⼦⾸先定义两个数组存储⽤户指定的⽂件名, 接着使⽤函数gets()接收⽤户输⼊的⽂件名,再使⽤函数rename()修改,如果成功则返回值为0,提⽰修改成功。
注意:实际开发中尽量避免使⽤gets()函数,gets()会影响程序的安全性和健壮性,请查看:
⼜如,设计⼀个在DOS命令⾏下修改⽂件的程序。
1. #include <stdio.h>
2. void main(int argc, char **argv)
3. {
4. if(argc < 3)
5. {
6. printf("Usage: %s old_name new_name\n", argv[0]);
7. return;
8. }
9. printf("%s=>%s", argc[1], argv[2]);
10. if(rename(argv[1], argv[2]) < 0)
赫子铭图片11. printf("error!\n");
12. else
13. printf("ok!\n");
14. }
发布评论