Apagar varios arquivos usando coringa

2 respostas
cardosodario

Tenho num determinado diretorio varios arquivos chamados

Relatorio1.abc
Relatorio1.003
Relatorio1.efg
Relatorio1.098

etc…

Mas o que eu sei eh que os arquivos chamam-se Relatorio1.* igual um DIR Relatorio1.* do Prompt do Windows

As extensões eu não conheço

Gostaria de fazer uma rotina no Java para apagar todos os arquivos Relatorio1.*

Como fazer?

Dario

2 Respostas

Cristiano_de_Barros

Olá,

A classe File possui um método para listar todos os arquivos de um diretório,
a única coisa que você terá que fazer é criar uma classe que implemente FilenameFilter.

public class FilenamePrefixFilter implements FilenameFilter {

	private String prefix;
	private boolean ignoreCase;

	public FilenamePrefixFilter(String prefix) {
		this(prefix, false);
	}

	public FilenamePrefixFilter(String prefix, boolean ignoreCase) {
		this.prefix = prefix;
		this.ignoreCase = ignoreCase;
	}

	public boolean accept(File dir, String name) {
		if (ignoreCase) {
			return name.toLowerCase().startsWith(prefix.toLowerCase());
		} else {
			return name.startsWith(prefix);
		}
	}

	// Utilização da classe
	public static void main(String[] args) {
		String diretorio = ".";// Substituir pelo diretório onde os arquivos devem estar.
		File[] files = new File(diretorio).listFiles(new FilenamePrefixFilter("Relatorio"));
		for (File f : files) {
			f.delete();
		}
	}

}

Espero ter ajudado!
Abraço

criador

Ou então…

// Carrega os arquivos do diretório corrente.
		File lo_file_configuracao = new File(".");
		
		// Filtra pela extensão do arquivo.
		FilenameFilter lo_file_extension = new FilenameFilter() { 
			
			public boolean accept(File ao_file, String as_name) { 
				return	(as_name.startsWith("Relatorio1.")); 
			}
		};
		
		// Recebe uma lista de arquivos.
		String[] 
		lo_list_files = lo_file_configuracao.list(lo_file_extension);
		
		// Percorre os arquivos encontrados ...
		for (int ln = 0; ln < lo_list_files.length; ln++) {  
			System.out.println(lo_list_files[ln]);
			// Deleta os arquivo....			
		}

Abraço!

Criado 1 de outubro de 2009
Ultima resposta 1 de out. de 2009
Respostas 2
Participantes 3