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
、 _errno
syserrlist
和 _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'