Я хотел бы получить список файлов с определенным расширением в каталоге. В 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) в типе Файл не применим для аргументов типа FileNameExtensionFilter
Я пытаюсь использовать listFiles(FileFilter)
, а не listFiles(FileNameFilter)
. Почему компилятор не распознает это?
Это работает, если я напишу свой собственный расширительный фильтр, расширяющий FileFilter
. Я предпочел бы использовать FileNameExtensionFilter
, чем писать свои собственные. Что я делаю неправильно?