修改文件名,可要調(diào)用操作系統(tǒng)提供的API函數(shù),比如Windows上的MoveFile(),也可以直接調(diào)用cmd中已提供的重命名命令——rename。下面的示例代碼,調(diào)用rename命令來重名命文件名。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、寬甸網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為寬甸等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
#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;
}
我告訴你一個(gè)很簡(jiǎn)單的方法
你加頭文件#includestdlib.h
在語句中寫system("ren
qq.txt
ww.txt");
如果文件不在程序目錄下,就在文件名那里加路徑就可以了,但路徑中的單斜杠(\)要寫成雙斜杠(\\);
如system("ren
c:\\qq.txt
ww.txt")
如果你要用字符串來命名文件名。就用這個(gè)函數(shù)strcat()函數(shù)來把字符串接起來就可以了,在、前面加頭文件#includestring.h.
如上面的列子可以這么寫:
char
a[10]="ww.txt";//這是你要改成的文件名。
char
b[20]="ren
c:\\qq.txt
";
strcat(b,a);//這里把a(bǔ)、b字符串接起來,經(jīng)過這里b就等于"ren
c:\\qq.txt
ww.txt";了
。
//下面直接又調(diào)用
system(b);//因?yàn)樽址産
經(jīng)過和a連接后就是整個(gè)你需要填進(jìn)的參數(shù)了。
可以通過C庫函數(shù)rename實(shí)現(xiàn)。
頭文件:stdio.h
原型::int rename(char *oldname, char *newname);
功能: 給一個(gè)文件重命名,從原始的oldname改成新名字newname。如果oldname和newname帶有路徑,且所在文件夾不同,那么用該函數(shù)可以實(shí)現(xiàn)文件移動(dòng)功能。刪除成功返回0,否則返回-1。
使用rename需要注意:
一、重命名文件:
如果newname指定的文件存在,則會(huì)被覆蓋。
如果newname與oldname不在一個(gè)目錄下,則相當(dāng)于移動(dòng)文件。
二、重命名目錄:
如果oldname和oldname都為目錄,則重命名目錄。
如果newname指定的目錄存在且為空目錄,則先將newname刪除。
對(duì)于newname和oldname兩個(gè)目錄,調(diào)用進(jìn)程必須有寫權(quán)限。
重命名目錄時(shí),newname不能包含oldname作為其路徑前綴。例如,不能將/usr更名為/usr/foo/testdir,因?yàn)槔厦郑?/usr/foo)是新名字的路徑前綴,因而不能將其刪除。