Linhas de comando DOS via Java sem bat externa

4 respostas
M

Oi gente, poderiam me ajudar como eu poderia limpar um diretório de arquivos via linha de comando java sem precisar iniciar bat via runtime e colocar comando deu dentro dela?

Digo isso pq estou evitando de utilizar bat externa… gostaria que essa limpeza de arquivos fosse intrinseca ao código, para deixá-lo mais compacto…

Valeu

4 Respostas

maior_abandonado

você pode criar um objeto java.io.File para a pasta em questão.

tendo esse objeto, ele tem um metodo chamado listFiles se não me engano, é isso ou alguma coisa assim, olhe na documentação: http://java.sun.com/javase/6/docs/api/

esse método vai retornar um array de objetos file, cada item do array é um arquivo de dentro deste diretório em questão.

dai você dentro de um loop vai chamar o método delete() de cada objeto do array retornado.

Detalhe que esse método tem um problema, bug, sei la, que ja passei, muitas vezes não apaga de fato o arquivo, para isso você precisa chamar o garbage collector antes de apagar o arquvo, então antes de chamar o método delete, da um System.gc(). A parte de apagar ficaria alguma coisa ± assim:

File[] seuArray = suaPasta.listFiles();

for (int i=0;i<seuArray.length;i++){

boolean apagado = false;
while(apagado){
    system.gc();
    apagado = seuArray[i].delete();
}

}

bom… tem como você mandar para o listFiles um objeto FileFilter para pegar apenas arquivos de uma determinada extensão por exemplo… da uma pesquisada no forum e no google (eu mesmo acho que quando precisei disso fiz desse jeito, ja faz um bom tempo)

acho que é isso…>

M

valeu deu certo!

M

monga1984:
Oi gente, poderiam me ajudar como eu poderia limpar um diretório de arquivos via linha de comando java sem precisar iniciar bat via runtime e colocar comando deu dentro dela?

Digo isso pq estou evitando de utilizar bat externa… gostaria que essa limpeza de arquivos fosse intrinseca ao código, para deixá-lo mais compacto…

Valeu

M

monga1984:
Oi gente, poderiam me ajudar como eu poderia limpar um diretório de arquivos via linha de comando java sem precisar iniciar bat via runtime e colocar comando deu dentro dela?

Digo isso pq estou evitando de utilizar bat externa… gostaria que essa limpeza de arquivos fosse intrinseca ao código, para deixá-lo mais compacto…

Valeu

Criado 9 de fevereiro de 2010
Ultima resposta 11 de fev. de 2010
Respostas 4
Participantes 2