Problema ao filtrar arquivos dentro de um diretorio
7 respostas
MaikoID
Olá estou tentando filtrar determinados arquivos que estão presentes dentro de um diretorio mas não estou conseguindo.
Estou tentando usar este código, pois com a Classe FileNameExtensionFilter também não da certo.
finalclassFiltroextendsjavax.swing.filechooser.FileFilter{String[]extensoes;Stringdescricao;publicFiltro(Stringdescricao,Stringextensoes){this.descricao=descricao;this.extensoes=extensoes.split(",");}@Overridepublicbooleanaccept(Filef){for(inti=0;i<extensoes.length;i++){if(f.getName().endsWith(extensoes[i])){returntrue;}}returnfalse;}@OverridepublicStringgetDescription(){returndescricao;}}this.arquivos=abrir("dir","Selecione o diretório de entrada.",JFileChooser.DIRECTORIES_ONLY).listFiles(newFiltro("BV arquivos","TXT,txt"));
Ele não deixa eu compilar acusando um erro ao adicionar o novo objeto Filtro como parametro em listFiles, ENTRETANTO o parametro aceito por este metodo tem de ser herdado da classe FileFilter, como o que estou fazendo na classe Filtro. Realmente não sei porque ele não deixar passar o Filtro como parametro.
Uai - não é para usar listFiles, e sim setFileFilter.
MaikoID
Então, você entendeu errado, não é em um JFileChooser que eu tenho que usar o filtro e sim ao pegar todos os arquivos que comecam com txt dentro de determinado diretorio.
Entendeu? E dentro da classe File não existe um setFileFilter, mas existe o listFiles que aceita um parametro FileFilter, mas do modo que estou fazendo (criando uma classe que herda o FileFilter) ele acusa erro na compilação.
abraço.
T
thingol
File.listFiles requer um java.io.FileFilter, não um javax.swing.filechooser.FileFilter. Os nomes são iguais, o que dá origem a confusões.
MaikoID
È foi mesmo confusão, entretanto não consigo fazer a classe herdar do java.io.FileFilter (nem existe esta classe), o que é estranho porque a documentação diz que existe.