Me gustaría obtener una lista de archivos con una extensión específica en un directorio. En la API (Java 6), veo un método File.listFiles(FileFilter)
que haría esto.
Como necesito una extensión específica, creé un FileNameExtensionFilter
. Sin embargo, obtengo un error de compilación cuando lo uso listFiles
con esto. Supuse que FileNameExtensionFilter implements FileFilter
, desde entonces , debería poder hacer esto. El código sigue:
FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);
La última línea muestra un error de compilación:
El método listFiles (FileNameFilter) en tipo File no es aplicable para argumentos de tipo FileNameExtensionFilter
Estoy tratando de usar listFiles(FileFilter)
, no listFiles(FileNameFilter)
. ¿Por qué el compilador no reconoce esto?
Esto funciona si escribo mi propio filtro de extensión extendiendo FileFilter
. Prefiero usar FileNameExtensionFilter
que escribir el mío. ¿Qué estoy haciendo mal?