Dúvida com FilenameFilter

2 respostas
P

Bom dia Feras :smiley:

Estou tentando criar uma expressão regular para buscar arquivos do diretório mas não está funcionando. A expressão deveria buscar todos arquivos que começam com o padrão passado. Alguém sabe me dizer o que está errado:

public static void main(String[] args) {

		File diretorio = new File(path);
		
		File[] arquivos = diretorio.listFiles(new FileFilter("STEP*"));

	}

}

class FileFilter implements FilenameFilter {
	private Pattern pattern;

	public FileFilter(String regex) {
		pattern = Pattern.compile(regex);
	}

	public boolean accept(File dir, String name) {
		File file = new File(name);
		Matcher pesquisa = pattern.matcher(file.getName());
		return pesquisa.matches();
	}
}

2 Respostas

E

O padrão “STEP*” bate com: “STE”, “STEP”, “STEPP”, “STEPPPP”, “STEPPPPPPPPPPPP” mas não com “STEPHAN” ou “STEP100”, que é o que você provavelmente está querendo.

No seu caso em particular, troque por “STEP." (o “.” significa qualquer caracter, e o "” indica zero ou mais instâncias do caracter anterior).

P

Obrigado!

Resolvido!

Criado 4 de junho de 2010
Ultima resposta 4 de jun. de 2010
Respostas 2
Participantes 2