Chciałbym uzyskać listę plików z określonym rozszerzeniem w katalogu. W API (Java 6) widzę metodę, File.listFiles(FileFilter)
która by to zrobiła.
Ponieważ potrzebuję określonego rozszerzenia, utworzyłem plik FileNameExtensionFilter
. Jednak pojawia się błąd kompilacji, gdy używam listFiles
tego. Założyłem, że od tego czasu FileNameExtensionFilter implements FileFilter
powinienem być w stanie to zrobić. Kod następujący:
FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);
Ostatnia linia pokazuje błąd kompilacji:
method listFiles (FileNameFilter) w typie File nie ma zastosowania dla argumentów typu FileNameExtensionFilter
Próbuję użyć listFiles(FileFilter)
, nie listFiles(FileNameFilter)
. Dlaczego kompilator tego nie rozpoznaje?
Działa to, jeśli napiszę własny rozszerzający filtr rozszerzenia FileFilter
. Wolałbym używać FileNameExtensionFilter
niż pisać własne. Co ja robię źle?