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
  5. Post direto e muito útil! Obrigado

    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 type="button" v…

"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:
<!-- Incorreto --> <?xml version="1.0" encoding="UTF-8"?>…

Integrando Android e PayPal com Java e MySQL - Parte 2

Na primeira parte deste artigo, nós cobrimos toda a configuração inicial do ambiente, envolvendo principalmente o projeto Java Web com Restful, as bibliotecas e ferramentas envolvidas, bem como suas respectivas versões.


Criamos também toda a comunicação com o banco de dados, o modelo Entidade-Relacionamento, o SQL gerado e as configurações da API do PayPal SDK para Java.

Nessa parte, focaremos em finalizar a aplicação de modelo, principalmente no lado Android, testando tudo de forma local.

Você poderá efetuar o download do código fonte diretamente do meu GitHub, no botão abaixo:

DOWNLOAD CÓDIGO
Na Figura 1 abaixo você pode visualizar como ficarão nossas telas ao final da implementação:
Configurando o projeto Android Antes de criar o projeto, precisamos efetuar o download do PayPal Android SDK. Extraia os arquivos em uma pasta de preferência.

Mais uma vez, você pode se sentir à vontade para usar o Eclipse Android Bundle ou o AndroidStudio para programar a parte Android, desde que tenha…