C語言rename()函數:重命名文件或目錄
頭文件:
#include <stdio.h>
函數rename()用于重命名文件、改變文件路徑或更改目錄名稱,其原型為
int rename(char * oldname, char * newname);
【參數】oldname為舊文件名,newname為新文件名。
【返回值】修改文件名成功則返回0,否則返回-1。
重命名文件:
重命名目錄:
【實例】一個簡單的修改文件名的程序。
#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;}
運行結果:
請告訴我一個文件的完整路徑:test.ncb您想修改為:test111.ncb已經把文件test. ncb修改為test111. ncb
例子首先定義兩個數組存儲用戶指定的文件名, 接著使用函數gets()接收用戶輸入的文件名,再使用函數rename()修改,如果成功則返回值為0,提示修改成功。
注意:實際開發中盡量避免使用gets()函數,gets()會影響程序的安全性和健壯性,請查看:C語言gets()函數:從流中讀取字符串
又如,設計一個在DOS命令行下修改文件的程序。
復制純文本新窗口
#include <stdio.h>void main(int argc, char **argv){ if(argc < 3) { printf("Usage: %s old_name new_name/n", argv[0]); return; } printf("%s=>%s", argc[1], argv[2]); if(rename(argv[1], argv[2]) < 0) printf("error!/n"); else printf("ok!/n");}
C語言remove()函數:刪除文件或目錄
頭文件:
#include <stdio.h>
remove()函數用于刪除指定的文件,其原型如下:
int remove(char * filename);
【參數】filename為要刪除的文件名,可以為一目錄。如果參數filename 為一文件,則調用unlink()處理;若參數filename 為一目錄,則調用rmdir()來處理。
【返回值】成功則返回0,失敗則返回-1,錯誤原因存于errno。
錯誤代碼:
EROFS 欲寫入的文件為只讀文件。
EFAULT 參數filename 指針超出可存取內存空間。
ENAMETOOLONG 參數filename 太長。
ENOMEM 核心內存不足。
ELOOP 參數filename 有過多符號連接問題。
EIO I/O 存取錯誤。
【實例】下面的程序演示了如何使用remove()函數刪除文件。
#include<stdio.h>int main(){ char filename[80]; printf("The file to delete:"); gets(filename); if( remove(filename) == 0 ) printf("Removed %s.", filename); else perror("remove");}
運行上述程序,首先聲明用于保存文件名的字符數組變量,從控制臺獲取文件名,然后刪除該文件,并根據刪除結果輸出相應的提示信息。
注意:實際開發中盡量避免使用gets()函數,gets()會影響程序的安全性和健壯性
新聞熱點
疑難解答
圖片精選