我想获取一个目录下特定扩展名的文件列表。在API(Java 6)中,我看到了一个方法File.listFiles(FileFilter)
可以实现这一功能。
由于我需要特定的扩展名,所以我创建了一个FileNameExtensionFilter
。然而当我使用listFiles
方法时,出现了编译错误。我以为由于FileNameExtensionFilter实现了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
而不是编写自己的过滤器。我做错了什么?