%>

重命名文件或目录。

语法

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_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'

另请参阅

文件处理