Ir ao conteúdo
  • Cadastre-se
WesleyCF

RESOLVIDO Apagar vários arquivos

Recommended Posts

Estou iniciando meu aprendizado na linguagem C++, e estou criando um algorítimo bem simples para apagar arquivos de uma determinada extensão (.vdb) e copiar outros com a mesma extensão. O problema é que não consigo excluir todos os arquivos por extensão, utilizei o comando remove com o nome do arquivo específico e deu certo:

 

remove("//btcsala01p01/c$/Documents and Settings/All Users/Dados de aplicativos/Symantec/Symantec AntiVirus Corporate Edition/7.5/arqvdb.vdb");

 

O problema é que são muitas salas e o nome muda de acordo com a data, como apaga-lo por extensão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se tiver no windows pode usar del

system("del diretorio\\*vdb");

ou pode usar a função "FindFirstFile" da Windows pra procurar os arquivos de um determinado tipo em um determinado diretório(diretorio\\*vdb) e ir usando "remove" com o nome do arquivo que a função retornar no membro "cfilename" na estrutura WIN32_FIND_DATA

 

espero que tenha sido isso que perguntou


aqui tem uma explicação melhor

http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ja tentei o system("diretório"); e também não deu certo:

 

#include <cstdlib>
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <locale.h>
 
using namespace std;
 
main(int argc, char *argv[])
{ setlocale(LC_ALL,"portuguese");
 
 
char e,arquivo2;
string arquivo;
int opc;
 
system("title Atualização Systemantec Antivírus");
cout<<"(1) Atualizar apenas as máquinas dos instrutores;\n"<<"(2) Atualizar várias máquinas;\n"<<"(3) Atualizar uma máquina;\n\n";
 
cout<<"Escolha uma das opções acima: ";cin>>opc;
system("cls");
 
switch(opc){
case 1:
 
//system("del ""//btcsala01p01/c$/Documents and Settings/All Users/Dados de aplicativos/Symantec/Symantec AntiVirus Corporate Edition/7.5/arqvdb.vdb""") --- da erro.
 
cout<<"Atualizar apenas as máuinas dos instrutores\n\n"<<"Atualizando Antivírus...\n\n";
remove("//btcsala01p01/c$/Documents and Settings/All Users/Dados de aplicativos/Symantec/Symantec AntiVirus Corporate Edition/7.5/arqvdb.vdb");
 
break;
 
case 2:
 
cout<<"Teste opção 2\n\n";
 
default:
cout<<"Opção inválida, tente novamente.\n\n";
 
}
 
 
 
system("pause");
return 0;
 
 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

se voce quer que todos os arquivos com uma determinada extensao sejam deletados tem que botar um   *extensao

system("del diretorio\\*vdb");

se o problema for espaços voce tem que colocar uma barra invertida antes,por exemplo

system("del \"C:\\Arq Txt\\*txt");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei de tudo q foi jeito, e ainda não deu certo :(

 

system("del \\btcsala01p01\c$\Documents and Settings\All Users\Dados de aplicativos\Symantec\Symantec AntiVirus Corporate Edition\7.5\*.vdb");

 

system("del \\\\btcsala03p01\\c$\\Documents and Settings\\All Users\\Dados de aplicativos\\Symantec\\Symantec AntiVirus Corporate Edition\\7.5\\*.vdb");

 

system("del \\\\btcsala03p01\\c$\\Documents and Settings\\All Users\\Dados de aplicativos\\Symantec\\Symantec AntiVirus Corporate Edition\\7.5\\vd419602.vdb");

 

Todos voltam "Caminho não encontrado".

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser varias coisas..pode ta faltando especificar uma unidade,pode ta errado o numero correspondente de barra pros espaços,pode ser que o caminho nao seja o correto,pode ser que voce nao esteja realmente especificando a extensao de arquivo corretamente..o melhor é simplificar,testar em um caminho nao tão longo e ir criando complexidade aos poucos e ver onde o erro ocorre

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atlos, obrigado pela ajuda. Estou quase conseguindo :D

 

Copiei o arquivo para o "C:\" da máquina de treinamento:

 

system("del \\\\btcsala01p01\\c$\\*vdb");

 

deu certo apagar  :aplausos:  mais quando tento apagar da pasta "documents and settings", ele ja volta o erro "caminho não encontrado". Creio q seja realmente os espaços,  coloquei a barra invertida antes, mas não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema são os espaços, você precisa colocar aspas no endereço.

 

Tente isso:

system("del \"\\\\btcsala03p01\\c$\\Documents and Settings\\All Users\\Dados de aplicativos\\Symantec\\Symantec AntiVirus Corporate Edition\\7.5\\*.vdb\"");

 

ou isso:

system("del \\\\btcsala03p01\\\"c$\\Documents and Settings\\All Users\\Dados de aplicativos\\Symantec\\Symantec AntiVirus Corporate Edition\\7.5\\*.vdb\"");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu Certo!!!

 

Coloquei assim:

 

system("del \"\\\\btcsala03p01\\c$\\Documents and Settings\\All Users\\Dados de aplicativos\\Symantec\\Symantec AntiVirus Corporate Edition\\7.5\\*.vdb\"");

 

valeu irmão pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×