Você está aqui: C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios |
Como mover arquivos e diretórios usando a função MoveFile() da Win32 APIQuantidade de visualizações: 10898 vezes |
A função MoveFile() da API do Windows é usada quando precisamos mover arquivos ou diretórios de um para outro diretório. Veja sua assinatura:BOOL WINAPI MoveFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName ); Veja que só precisamos informar o caminho atual e o novo caminho do arquivo ou diretório. Note, no entanto, que a função MoveFile() não permite mover diretórios de um para outro volume, ou seja, se o diretório estiver em C: e tentarmos movê-lo para D: ocorrerá um erro ERROR_ACCESS_DENIED, O código para este erro é 5 e a mensagem em português é "Acesso negado". Veja um trecho de código no qual movemos um arquivo de um diretório para outro: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ // local atual CHAR local_atual[] = "C:\\pasta1\\testes.txt"; // novo local CHAR novo_local[] = "C:\\pasta2\\testes.txt"; // vamos mover o arquivo if(MoveFile(local_atual, novo_local)){ cout << "Arquivo movido com sucesso." << endl; } else{ cout << "Erro ao mover o arquivo: " << GetLastError() << endl; } system("PAUSE"); return EXIT_SUCCESS; } Veja agora como mover um diretório: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ // local atual CHAR local_atual[] = "C:\\diretorio1\\imagens"; // novo local CHAR novo_local[] = "C:\\diretorio2\\imagens"; // vamos mover o diretório if(MoveFile(local_atual, novo_local)){ cout << "Arquivo movido com sucesso." << endl; } else{ cout << "Erro ao mover o arquivo: " << GetLastError() << endl; } system("PAUSE"); return EXIT_SUCCESS; } Aqui nós estamos movendo o diretório imagens do diretório diretorio1 para o diretorio2. É importante notar, que, ao movermos um diretório, todo o conteúdo contido nesse diretório será movido também. A função MoveFile() pode falhar. Caso isso aconteça, seu retorno será 0 (zero). Podemos obter mais informações sobre o erro gerado usando a função GetLastError(). Veja os possíveis erros: a) ERROR_FILE_NOT_FOUND - Ocorre quando o arquivo ou diretório a ser movido não existe. O código para este erro é 2 e a mensagem em português é "O sistema não pode encontrar o arquivo especificado". b) ERROR_ALREADY_EXISTS - Ocorre quando o arquivo ou diretório fornecido como segundo argumento para a função MoveFile() já existe. O código para este erro é 183 e a mensagem em português é "Não é possível criar um arquivo já existente (Cannot create a file when that file already exists)". |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
Java - Como testar o conteúdo no final de uma string usando Java - O método endsWith() da classe String |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |