%>
重命名文件或目录。
语法
int rename(
const char *oldname,
const char *newname
);
int _wrename(
const wchar_t *oldname,
const wchar_t *newname
);
参数
oldname
指向旧名称的指针。
newname
指向新名称的指针。
返回值
如果成功,则这些函数均返回 0。 发生错误时,函数返回非零值,并将 errno
设置为以下值之一:
errno 值 |
条件 |
---|---|
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'