Share via


rename, _wrename

重新命名檔案或目錄。

語法

int rename(
   const char *oldname,
   const char *newname
);
int _wrename(
   const wchar_t *oldname,
   const wchar_t *newname
);

參數

oldname
舊名稱的指標。

newname
新名稱的指標。

傳回值

如果函式成功,則每個函式都會傳回 0。 發生錯誤時,函式會傳回非零值,並將 errno 設定為下列值之一︰

errno Condition
EACCES 指定的 newname 檔案或目錄已經存在或無法建立(無效路徑):或 oldname 是目錄,並 newname 指定不同的路徑。
ENOENT 找不到 指定的 oldname 檔案或路徑。
EINVAL 名稱包含無效的字元。

如需其他可能的傳回值,請參閱 _doserrno_errnosyserrlist_sys_nerr

備註

函式會將 rename 指定的 oldname 檔案或目錄重新命名為 所 newname 指定的名稱。 舊名稱必須是現有的檔案或目錄的路徑。 新名稱不得是現有的檔案或目錄的名稱。 您可以使用 在 引數中 newname 提供不同的路徑,將 rename 檔案從一個目錄或裝置移至另一個目錄。 不過,您無法使用 rename 來移動目錄。 目錄可以重新命名,但不能移動。

_wrename_rename的寬字元版本; _wrename 的引數是寬字元字串。 否則,_wrename_rename 的行為即會相同。

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

泛型文字常式對應

TCHAR.H 常規 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_trename rename rename _wrename

需求

常式 必要的標頭
rename <io.h><stdio.h>
_wrename <stdio.h><wchar.h>

如需相容性詳細資訊,請參閱相容性

程式庫

所有版本的 C 執行階段程式庫

範例

// crt_renamer.c
/* This program attempts to rename a file named
* CRT_RENAMER.OBJ to CRT_RENAMER.JBO. For this operation
* to succeed, a file named CRT_RENAMER.OBJ must exist and
* a file named CRT_RENAMER.JBO must not exist.
*/

#include <stdio.h>

int main( void )
{
   int  result;
   char old[] = "CRT_RENAMER.OBJ", new[] = "CRT_RENAMER.JBO";

   /* Attempt to rename file: */
   result = rename( old, new );
   if( result != 0 )
      printf( "Could not rename '%s'\n", old );
   else
      printf( "File '%s' renamed to '%s'\n", old, new );
}

輸出

File 'CRT_RENAMER.OBJ' renamed to 'CRT_RENAMER.JBO'

另請參閱

檔案處理