C語言rename()函式:重新命名檔案或目錄
標頭檔案:#include <stdio.h>
函式rename()用於重新命名檔案、改變檔案路徑或更改目錄名稱,其原型為
int rename(char * oldname, char * newname);
【引數】oldname為舊檔名,newname為新檔名。
【返回值】修改檔名成功則返回0,否則返回-1。
重新命名檔案:
重新命名目錄:
【例項】一個簡單的修改檔名的程式。
執行結果:
請告訴我一個檔案的完整路徑:test.ncb
您想修改為:test111.ncb
已經把檔案test. ncb修改為test111. ncb
例子首先定義兩個陣列儲存使用者指定的檔名, 接著使用函式gets()接收使用者輸入的檔名,再使用函式rename()修改,如果成功則返回值為0,提示修改成功。
注意:實際開發中儘量避免使用gets()函式,gets()會影響程式的安全性和健壯性,請檢視:C語言gets()函式:從流中讀取字串
又如,設計一個在DOS命令列下修改檔案的程式。
函式rename()用於重新命名檔案、改變檔案路徑或更改目錄名稱,其原型為
int rename(char * oldname, char * newname);
【引數】oldname為舊檔名,newname為新檔名。
【返回值】修改檔名成功則返回0,否則返回-1。
重新命名檔案:
- 如果newname指定的檔案存在,則會被刪除。
- 如果newname與oldname不在一個目錄下,則相當於移動檔案。
重新命名目錄:
- 如果oldname和oldname都為目錄,則重新命名目錄。
- 如果newname指定的目錄存在且為空目錄,則先將newname刪除。
- 對於newname和oldname兩個目錄,呼叫程式必須有寫許可權。
- 重新命名目錄時,newname不能包含oldname作為其路徑字首。例如,不能將/usr更名為/usr/foo/testdir,因為老名字( /usr/foo)是新名字的路徑字首,因而不能將其刪除。
【例項】一個簡單的修改檔名的程式。
- #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;
- }
#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()函式:刪除檔案或目錄C語言REM函式
- C語言檔案與目錄(一)C語言
- C語言檔案與目錄(二)C語言
- C語言檔案與目錄(三)C語言
- C語言檔案與目錄(五)檔案鎖C語言
- C語言檔案與目錄(四)緩衝區C語言
- C語言chdir()函式:改變當前的工作目錄C語言函式
- C語言unlink()函式:刪除檔案C語言函式
- C語言link()函式:建立檔案連線C語言函式
- C語言函式手冊:c語言庫函式大全|C語言標準函式庫|c語言常用函式查詢C語言函式
- C語言lstat()函式:由檔案描述詞取得檔案狀態C語言函式
- C語言fstat()函式:由檔案描述詞取得檔案狀態C語言函式
- C語言fgetc()函式:讀檔案函式(由檔案中讀取一個字元)C語言函式字元
- C語言fchmod()函式:修改檔案的許可權C語言函式
- C語言chown()函式:改變檔案所有者C語言函式
- C語言rewind()函式:將檔案指標重新指向檔案開頭C語言函式指標
- C語言symlink()函式:建立檔案符號連線C語言函式符號
- C語言lseek()函式:移動檔案的讀寫位置C語言函式
- C語言putc()函式:寫檔案函式(將一指定字元寫入檔案中)C語言函式字元
- C語言fopen()函式:開啟一個檔案並返回檔案指標C語言函式指標
- C語言 execve()函式C語言函式
- C語言常用函式C語言函式
- C語言的函式C語言函式
- 刪除檔案或目錄提示"檔案或目錄無法刪除"的解決方法!
- C語言fputc()函式:寫檔案函式(將一指定字元寫入檔案流中)C語言函式字元
- C語言setvbuf()函式:設定檔案流的緩衝區C語言函式
- Go語言內幕(4):目標檔案和函式後設資料Go函式
- Linux 移動或重新命名檔案/目錄-mv 的10個實用例子Linux
- C語言 itoa函式及atoi函式C語言函式
- ln 覆蓋普通檔案或目錄
- C語言putenv()函式:改變或增加環境變數C語言函式變數
- C語言函式呼叫棧C語言函式
- 詳解C語言函式C語言函式
- tmpnam() - C語言庫函式C語言函式
- tmpfile() - C語言庫函式C語言函式
- C語言時間函式C語言函式
- c語言函式庫(轉)C語言函式
- C語言 函式指標C語言函式指標