rename
, _wrename
Renomeie um arquivo ou diretório.
Sintaxe
int rename(
const char *oldname,
const char *newname
);
int _wrename(
const wchar_t *oldname,
const wchar_t *newname
);
Parâmetros
oldname
Ponteiro para o nome antigo.
newname
Ponteiro para o novo nome.
Valor retornado
Cada uma dessas funções retornará 0 se for bem-sucedida. Em caso de erro, a função retorna um valor diferente de zero e define errno
para um dos seguintes valores:
errno valor |
Condição |
---|---|
EACCES |
O arquivo ou diretório especificado por newname já existe ou não pôde ser criado (caminho inválido); ou oldname é um diretório e newname especifica um caminho diferente. |
ENOENT |
O arquivo ou caminho especificado por oldname não foi encontrado. |
EINVAL |
Nome contém caracteres inválidos. |
Para outros possíveis valores retornados, confira _doserrno
, _errno
, syserrlist
e _sys_nerr
.
Comentários
A função rename
renomeia o arquivo ou o diretório especificado por oldname
para o nome fornecido por newname
. O nome antigo deve ser o caminho de um arquivo ou diretório existente. O novo nome não pode ser o nome de um arquivo ou diretório existente. Você pode usar rename
para mover um arquivo de um diretório ou dispositivo para outro fornecendo um caminho diferente no argumento newname
. No entanto, você não pode usar rename
para mover um diretório. Diretórios podem ser renomeados, mas não movidos.
_wrename
é uma versão de caractere largo de _rename
; os argumentos para _wrename
são cadeias de caracteres largas. Caso contrário, _wrename
e _rename
se comportam de forma idêntica.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_trename |
rename |
rename |
_wrename |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
rename |
<io.h> ou <stdio.h> |
_wrename |
<stdio.h> ou <wchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Bibliotecas
Todas as versões das bibliotecas em tempo de execução C.
Exemplo
// 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 );
}
Saída
File 'CRT_RENAMER.OBJ' renamed to 'CRT_RENAMER.JBO'