Movendo e substituindo arquivos

Antes que uma operação de cópia possa ser executada, o arquivo de origem deve ser fechado ou aberto somente para leitura. Nenhum thread pode ter o arquivo de origem aberto para gravação. Para copiar um arquivo existente para um novo, use a função CopyFile ou CopyFileEx . Os aplicativos podem especificar se CopyFile e CopyFileEx falharão se o arquivo de destino já existir. Se o arquivo de destino existir e estiver aberto, ele deverá ter sido aberto com permissões de compartilhamento aplicáveis. Para obter mais informações, consulte CreateFile.

A função CopyFileEx também permite que um aplicativo especifique o endereço de uma função de retorno de chamada (consulte CopyProgressRoutine) que é chamada sempre que outra parte do arquivo é copiada. O aplicativo pode usar essas informações para exibir um indicador que mostra o número total de bytes copiados como uma porcentagem do tamanho total do arquivo.

A função ReplaceFile substitui um arquivo por outro arquivo, com a opção de criar uma cópia de backup do arquivo original. A função preserva atributos do arquivo original, como seu tempo de criação, ACLs e atributo de criptografia.

Um arquivo também deve ser fechado antes que um aplicativo possa movê-lo. As funções MoveFile e MoveFileEx copiam um arquivo existente para um novo local e excluem o original.

A função MoveFileEx também permite que um aplicativo especifique como mover o arquivo. A função pode substituir um arquivo existente, mover um arquivo entre volumes e atrasar a movimentação do arquivo até que o sistema operacional seja reiniciado.