300x250 AD TOP

adv1

Formulário de contato

22 de julho de 2012

Tags: , ,

Como remover arquivos de um diretório em Java

Olá galera, post rápido sobre como remover vários arquivos dentro de determinado diretório.

Em meio a uma necessidade recente, necessitei remover arquivos com terminações ".xxx" que não conheço (ou não quero controlar) e achei interessante postar aqui a solução.

Quando conhecemos o nome do arquivo a ser removido, bem como em qual diretório o mesmo se encontra, tudo fica mais fácil:
String nome = "C:/pasta_de_teste/teste.html";  
File f = new File(nome);  
f.delete();
Mas o problema reside quando não conhecemos este caminho, ou mais ainda, quando ps arquivos são inseridos no diretório com nomes/terminações não identificadas pelo desenvolvedor.
Para tanto, podemos implementar o seguinte código (comentado):
public void removerArquivos(File f) {
        // Se o arquivo passado for um diretório
        if (f.isDirectory()) {
                /* Lista todos os arquivos do diretório em um array 
                   de objetos File */
                File[] files = f.listFiles();
                // Identa a lista (foreach) e deleta um por um
                for (File file : files) {
                        file.delete();
                }
        }
}

Se desejar deletar todos os arquivos inclusive o próprio diretório raiz, pode utilizar o exemplo abaixo (recursivo):

public void removerArquivos(File f) {
     if (f.isDirectory()) {
         File[] files = f.listFiles();
         for (File file : files) {
             removerArquivos(file);
         }
     }
     f.delete();
  }

É isso! =)

-->

7 comentários:

  1. Show de bola!!! Parabens pelo Post!!!

    ResponderExcluir
  2. amigo, estou com uma duvida grande, meu projeto é web, e não sabemos qual diretorio ficar o endereço conforme exemplo seu.
    "C:/pasta_de_teste/teste.html";, se eu colocar assim na minha aplicaçõa exemplo apaga o arquivo, porém quando publicamos em um servidor não sabemos qual endereço irá ficar, então o correto seria colocar desta forma "/pasta_de_teste/teste.html";, mas quando eu coloco assim não apaga o arquivo, como devo proceder ?.

    ResponderExcluir
  3. Você está se referindo a recuperar o valor físico real daquele path dentro de um servidor java?

    ResponderExcluir