Deletar arquivos

6 respostas
L

Preciso deletar todos os arquivos de uma pasta que tenham parte do nome em comum.
Exemplo excluir todos os arquivos “alfa*.txt”.
Alguém sabe??
Obrigado.

6 Respostas

danieldestro

A classe File tem um método que te retorna um array de File com o padrão de noem desejado. Aí é só fazer um for() e ir deletando.

L

fiz assim, está funcionando mas não ficou muito bonito
eu queria saber como defino “cb*.jpg” para não precisar usar getName().toString().indexof("")…

dir = new java.io.File(“c:/temp1”);
java.io.File[] arq = dir.listFiles();

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

{

if (arq[i].isFile())

{

if ( (arq[i].getName().toString().indexOf(cb)>=0) && (arq[i].getName().toString().indexOf(".jpg")>=0) )

arq[i].delete();

}

}
om1

Vc tem que implementar a interface java.io.FileNameFilter.

Encontrei no google uma implementação q parece ser o q vc precisa:

http://www.jzoo.com/java/wildcardfilter/

danieldestro
/**
 * This class implements a FilenameFilter, intended to filter the
 * files listing.
 * @author daniel destro do carmo
 */
class FilenameFilterImpl implements FilenameFilter {
	private String filterPattern = null;
	
	public FilenameFilterImpl(String filterPattern) {
		super();
		this.filterPattern = filterPattern;
	}
	
	public boolean accept(File directory, String filename) {
		//you can optimize this filter if desired.
		//I was God damn lazy today, I confess... My fault!
		if( filename.endsWith(filterPattern) ) return true;
		return false;
	}
}

File directory = new File("C:");
FilenameFilter filter = new FilenameFilterImpl( "txt" );
File[] filteredFiles = directory.listFiles( filter );

ecarmo

Cara da uma olhada neste codigo, eu usei uma vez para filtra um diretorio, eu to usando o FileNameFilter.

// Filtro


public class Filtro implements FilenameFilter {
	protected String extensaoArquivo;


	public Filtro(String extensao){
		this.extensaoArquivo = "." + extensao;
	}


	/* (non-Javadoc)
	 * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
	 * Valida se o Final do Nome do Arquivo é igual a Extensão passada
	 */
	public boolean accept(File arg0, String nomedoArquivo) {
		return(nomedoArquivo.endsWith(this.extensaoArquivo));		
	}

}


// Classe que le os arquivos utilizando o Filtro

public class LerArquivos{
	
	public static void main(String[] args) {
		FilenameFilter filtro = new Filtro("txt");
		File conteudoDiretorio = new File("c:");
		File arquivos[] = conteudoDiretorio.list(filtro);

		for(int i = 0; i < arquivos.length; i++){
			System.out.println(arquivos[i]..getName());
		}
	}

}

De uma olhada na documentacao do FileNameFilter é muito simples, espero ter ajudado

P.s.: Ptz, enquanto eu digitava o danieldestro ja mandou uma resposta, hauhauhaua

danieldestro

você foi lerdo cara… haahahaahha
estou um passo à frente no mercado de trabalho… haahahha

brincadeirinha!

Criado 5 de março de 2004
Ultima resposta 5 de mar. de 2004
Respostas 6
Participantes 4