将 File.listFiles 与 FileNameExtensionFilter 一起使用 [英] Using File.listFiles with FileNameExtensionFilter

查看:34
本文介绍了将 File.listFiles 与 FileNameExtensionFilter 一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获取目录中具有特定扩展名的文件列表.在 API (Java 6) 中,我看到一个方法 File.listFiles(FileFilter) 可以做到这一点.

I would like to get a list of files with a specific extension in a directory. In the API (Java 6), I see a method File.listFiles(FileFilter) which would do this.

因为我需要一个特定的扩展,所以我创建了一个 FileNameExtensionFilter.但是,当我使用 listFiles 时出现编译错误.我认为由于 FileNameExtensionFilter 实现了 FileFilter,我应该能够做到这一点.代码如下:

Since I need a specific extension, I created a FileNameExtensionFilter. However I get a compilation error when I use listFiles with this. I assumed that since FileNameExtensionFilter implements FileFilter, I should be able to do this. Code follows:

FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir  = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);

最后一行显示编译错误:

The last line shows a compilation error:

File 类型中的方法 listFiles(FileNameFilter) 不适用于 FileNameExtensionFilter 类型的参数

method listFiles(FileNameFilter) in type File is not applicable for arguments of type FileNameExtensionFilter

我正在尝试使用 listFiles(FileFilter),而不是 listFiles(FileNameFilter).为什么编译器不能识别?

I am trying to use listFiles(FileFilter), not listFiles(FileNameFilter). Why does the compiler not recognize this?

如果我编写自己的扩展过滤器来扩展 FileFilter,这会起作用.我宁愿使用 FileNameExtensionFilter 而不是自己编写.我做错了什么?

This works if I write my own extension filter extending FileFilter. I would rather use FileNameExtensionFilter than write my own. What am I doing wrong?

推荐答案

FileNameExtensionFilter 类用于 Swing 用于 <代码>JFileChooser.

尝试使用 FilenameFilter 代替.例如:

Try using a FilenameFilter instead. For example:

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");
    }
});

这篇关于将 File.listFiles 与 FileNameExtensionFilter 一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆