我想在目录中获取具有特定扩展名的文件列表。在API(Java 6)中,我看到了File.listFiles(FileFilter)可以做到这一点的方法。
API(Java 6)
File.listFiles(FileFilter)
由于我需要特定的扩展名,因此我创建了一个FileNameExtensionFilter。但是,当我listFiles与此一起使用时,出现编译错误。我以为自以来FileNameExtensionFilter implements 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类型的参数
File
listFiles(FileNameFilter)
我正在尝试使用listFiles(FileFilter),不是listFiles(FileNameFilter)。为何编译器无法识别这一点?
listFiles(FileFilter)
listFiles(FileNameFilter)
如果我编写自己的扩展筛选器extend,则此方法有效FileFilter。我宁愿使用而不愿FileNameExtensionFilter自己写。我究竟做错了什么?
extend
FileFilter
在FileNameExtensionFilter类用于摇摆的使用JFileChooser。
JFileChooser
尝试使用FilenameFilter代替。例如:
FilenameFilter
File dir = new File("/users/blah/dirname"); File[] files = dir.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return name.toLowerCase().endsWith(".txt"); } });