Я хотел бы получить список файлов с определенным расширением в каталоге. В API (Java 6) я вижу метод File.listFiles(FileFilter)
, который сделает это.
Поскольку мне нужно конкретное расширение, я создал FileNameExtensionFilter
. Однако я получаю ошибку компиляции, когда я использую listFiles
с этим. Я предполагал, что с FileNameExtensionFilter implements FileFilter
я смогу это сделать. Код следует:
FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);
Последняя строка показывает ошибку компиляции:
метод listFiles (FileNameFilter) в типе File не применим для аргументов типа FileNameExtensionFilter
Я пытаюсь использовать listFiles(FileFilter)
, а не listFiles(FileNameFilter)
. Почему компилятор не распознает это?
Это работает, если я напишу свой собственный фильтр расширений, расширяющий FileFilter
. Я предпочел бы использовать FileNameExtensionFilter
, чем написать свой. Что я делаю не так?