Anu*_*Anu 75 java file filter java-6
我想获得一个目录中具有特定扩展名的文件列表.在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);
Run Code Online (Sandbox Code Playgroud)
最后一行显示编译错误:
类型File中的方法listFiles(FileNameFilter)不适用于FileNameExtensionFilter类型的参数
我试图使用listFiles(FileFilter)
,而不是listFiles(FileNameFilter)
.为什么编译器不能识别这个?
如果我编写自己的扩展过滤器扩展,这是有效的FileFilter
.我宁愿使用而FileNameExtensionFilter
不是写我自己的.我究竟做错了什么?
Whi*_*g34 176
在FileNameExtensionFilter
类用于摇摆的使用JFileChooser
.
尝试使用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");
}
});
Run Code Online (Sandbox Code Playgroud)
CFr*_*ner 27
您想要使用特定原因FileNameExtensionFilter
吗?我知道这有效..
private File[] getNewTextFiles() {
return dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
});
}
Run Code Online (Sandbox Code Playgroud)
Ser*_*ġan 25
java 8语法中的单行代码:
pdfTestDir.listFiles((dir, name) -> name.toLowerCase().endsWith(".txt"));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
172037 次 |
最近记录: |