Compartilhar via


Função MoveFileA (winbase.h)

Move um arquivo ou um diretório existente, incluindo seus filhos.

Para especificar como mover o arquivo, use a função MoveFileEx ou MoveFileWithProgress.

Para executar essa operação como uma operação transacionada, use a função MoveFileTransacted.

Sintaxe

BOOL MoveFileA(
  [in] LPCSTR lpExistingFileName,
  [in] LPCSTR lpNewFileName
);

Parâmetros

[in] lpExistingFileName

O nome atual do arquivo ou diretório no computador local.

Por padrão, o nome é limitado a MAX_PATH caracteres. Para estender esse limite para 32.767 caracteres de largura, acrescente "\\?\" ao caminho. Para obter mais informações, consulte Arquivos de Nomenclatura, Caminhos e Namespaces.

Ponta

A partir do Windows 10, versão 1607, você pode optar por remover a limitação de MAX_PATH sem acrescentar "\\?\". Consulte a seção "Limitação máxima do comprimento do caminho" de arquivos de nomenclatura, caminhos e namespaces para obter detalhes.

[in] lpNewFileName

O novo nome do arquivo ou diretório. O novo nome ainda não deve existir. Um novo arquivo pode estar em um sistema de arquivos ou unidade diferente. Um novo diretório deve estar na mesma unidade.

Por padrão, o nome é limitado a MAX_PATH caracteres. Para estender esse limite para 32.767 caracteres de largura, acrescente "\\?\" ao caminho. Para obter mais informações, consulte Arquivos de Nomenclatura, Caminhos e Namespaces.

Ponta

A partir do Windows 10, versão 1607, você pode optar por remover a limitação de MAX_PATH sem acrescentar "\\?\". Consulte a seção "Limitação máxima do comprimento do caminho" de arquivos de nomenclatura, caminhos e namespaces para obter detalhes.

Valor de retorno

Se a função for bem-sucedida, o valor retornado não será zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Observações

A função MoveFile moverá (renomeará) um arquivo ou um diretório (incluindo seus filhos) no mesmo diretório ou em diretórios. A única ressalva é que a função MoveFile falhará em movimentos de diretório quando o destino estiver em um volume diferente.

Se um arquivo for movido entre volumes, MoveFile não moverá o descritor de segurança com o arquivo. O arquivo receberá o descritor de segurança padrão no diretório de destino.

A função MoveFile coordena sua operação com o serviço de acompanhamento de link, para que as fontes de link possam ser rastreadas à medida que são movidas.

No Windows 8 e no Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Suportado
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 Sim
TFO (Failover Transparente) do SMB 3.0 Consulte o comentário
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) Consulte o comentário
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

O SMB 3.0 não dá suporte à renomeação de fluxos de dados alternativos em compartilhamentos de arquivos com capacidade de disponibilidade contínua.

Nota

O cabeçalho winbase.h define MoveFile como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winbase.h (inclua Windows.h)
biblioteca Kernel32.lib
de DLL Kernel32.dll

Consulte também

CopyFile

Funções de gerenciamento de arquivos

MoveFileEx

MoveFileTransacted

MoveFileWithProgress