Поделиться через


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. Старое имя должно быть путем к существующему файлу или каталогу. Новое имя не должно быть путем к существующему файлу или каталогу. Можно использовать rename для перемещения файла из одного каталога или устройства в другой, предоставив другой путь в аргументе newname . Однако вы не можете использовать 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'

См. также

Обработка файлов