Pular para o conteúdo principal

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! =)

-->

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
  4. Este comentário foi removido pelo autor.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Como acessar um iframe e seus elementos via jQuery?

Recentemente tive  um problema no projeto pois sentiu a necessidade de acessar um valor de um input que estava dentro de um iframe. Esse tipo de situação não é tão comum, uma vez que geralmente acessamos os valores do iframe para fora. Para acessar, de dentro de um iframe, um valor externo, utilizamos o seguinte código: $('#idDoElementoExterno', parent.document).val(); Entretanto, nunca tínhamos passado pela situação contrária. Pesquisando um pouco descobrimos uma alternativa, porém em JavaScript. Para ficar melhor o entendimento, vamos simular uma situação aqui. Temos uma página html "A.html" e dentro da mesma existe um iframe que aponta (src) para uma página "B.html": <!-- A.html --> <html> <head> <title>Testando iframe - jQuery</title> <script language="JavaScript"> function exibeValor() { // alert aqui! } </script> </head> <body> <input typ...

"Content is not allowed in prolog" - Entendendo exceção no Seam

Recentemente tive um problema de edição em um arquivo .xhtml utilizando JBoss Seam, Richfaces e afins. A princípio a mensagem de erro não dizia muito a respeito da causa do mesmo: com.sun.facelets.FaceletException: Error Parsing /consulta.xhtml: Error Traced[line: 1] Content is not allowed in prolog. "O conteúdo não é permitido no prólogo". Mas que conteúdo? Em qual prolog? Depois de dar uma pesquisada descobri que o erro acontece em vista de terem sido colocados alguns caraceteres inválidos antes da declaração de documento xml na página xhtml. Em outras palavras, a primeira coisa que deve constar em um documento xml (afins) deve ser: <?xml version="1.0" encoding="utf-8"?> Qualquer coisa antes disso, até mesmo um simples espaço em branco, pode gerar o erro em questão. Por fim, lembre-se de que a declaração de documento xml segue o padrão de encoding definido. Logo temos: <!-- Inc...