修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。
成都创新互联公司专注于企业全网整合营销推广、网站重做改版、宽甸网站定制设计、自适应品牌网站建设、HTML5、商城网站制作、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为宽甸等各大城市提供网站开发制作服务。
#include stdio.h
#include stdlib.h
#include string.h
int main(int ac, char *pav[])
{
if (ac!=3) {
printf("程序名 要重命名的文件路径 新的文件名\n");
printf("示例:test.exe 1.txt 2.txt\n");
return 0;
}
if (access(pav[1], 0) !=0) {
printf("不存在该文件\n");
return 0;
}
char szcmd[256] = "cmd /c rename ";
strcat(szcmd, pav[1] );
strcat(szcmd, " ");
strcat(szcmd, pav[2]);
system(szcmd);
return 0;
}
我告诉你一个很简单的方法
你加头文件#includestdlib.h
在语句中写system("ren
qq.txt
ww.txt");
如果文件不在程序目录下,就在文件名那里加路径就可以了,但路径中的单斜杠(\)要写成双斜杠(\\);
如system("ren
c:\\qq.txt
ww.txt")
如果你要用字符串来命名文件名。就用这个函数strcat()函数来把字符串接起来就可以了,在、前面加头文件#includestring.h.
如上面的列子可以这么写:
char
a[10]="ww.txt";//这是你要改成的文件名。
char
b[20]="ren
c:\\qq.txt
";
strcat(b,a);//这里把a、b字符串接起来,经过这里b就等于"ren
c:\\qq.txt
ww.txt";了
。
//下面直接又调用
system(b);//因为字符串b
经过和a连接后就是整个你需要填进的参数了。
可以通过C库函数rename实现。
头文件:stdio.h
原型::int rename(char *oldname, char *newname);
功能: 给一个文件重命名,从原始的oldname改成新名字newname。如果oldname和newname带有路径,且所在文件夹不同,那么用该函数可以实现文件移动功能。删除成功返回0,否则返回-1。
使用rename需要注意:
一、重命名文件:
如果newname指定的文件存在,则会被覆盖。
如果newname与oldname不在一个目录下,则相当于移动文件。
二、重命名目录:
如果oldname和oldname都为目录,则重命名目录。
如果newname指定的目录存在且为空目录,则先将newname删除。
对于newname和oldname两个目录,调用进程必须有写权限。
重命名目录时,newname不能包含oldname作为其路径前缀。例如,不能将/usr更名为/usr/foo/testdir,因为老名字( /usr/foo)是新名字的路径前缀,因而不能将其删除。