Ich möchte eine Liste von Dateien mit einer bestimmten Erweiterung in einem Verzeichnis erhalten. In der API (Java 6) sehe ich eine Methode, File.listFiles(FileFilter)
die dies tun würde.
Da ich eine bestimmte Erweiterung benötige, habe ich eine erstellt FileNameExtensionFilter
. Ich erhalte jedoch einen Kompilierungsfehler, wenn ich damit verwende listFiles
. Ich ging davon aus, dass FileNameExtensionFilter implements FileFilter
ich dies seitdem tun sollte. Code folgt:
FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);
Die letzte Zeile zeigt einen Kompilierungsfehler:
Die Methode listFiles (FileNameFilter) vom Typ File gilt nicht für Argumente vom Typ FileNameExtensionFilter
Ich versuche zu benutzen listFiles(FileFilter)
, nicht listFiles(FileNameFilter)
. Warum erkennt der Compiler dies nicht?
Dies funktioniert, wenn ich meinen eigenen Erweiterungsfilter schreibe FileFilter
. Ich würde lieber FileNameExtensionFilter
meine eigenen verwenden als schreiben. Was mache ich falsch?