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: 10984 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:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#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 |
|
JavaScript - Como resolver uma equação do segundo grau em JavaScript - Como calcular Bhaskara em JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




