我想得到一个目录中具有特定扩展名的文件列表。在 API (Java6)中,我看到一个方法 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);
最后一行显示一个编译错误:
类型 File 中的方法 listFiles (FileNameFilter)不适用于 FileNameExtensionFilter 类型的参数
我正在尝试使用 listFiles(FileFilter)
,而不是 listFiles(FileNameFilter)
。为什么编译器不能识别这一点?
如果我编写自己的扩展过滤器扩展 FileFilter
,就可以做到这一点。我宁愿使用 FileNameExtensionFilter
而不是编写我自己的。我做错了什么?