【发布时间】:2011-08-10 17:10:16
【问题描述】:
我想获取目录中具有特定扩展名的文件列表。在 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);
最后一行显示编译错误:
File 类型的方法 listFiles(FileNameFilter) 不适用于 FileNameExtensionFilter 类型的参数
我正在尝试使用listFiles(FileFilter),而不是listFiles(FileNameFilter)。为什么编译器不能识别这个?
如果我编写自己的扩展过滤器扩展 FileFilter,这将有效。我宁愿使用FileNameExtensionFilter 而不是自己写。我做错了什么?
【问题讨论】:
-
首先,您需要将“txt”作为第一个参数,将“仅文本”作为第二个参数。
-
代码正确,@lobster1234。见:docs.oracle.com/javase/7/docs/api/javax/swing/filechooser/…