Java FilenameFilter

时间:2011-11-22 09:32:08

标签: java file filter names

我需要获取目录中具有特定扩展名(例如.txt)的所有文件。我应该能够列出所有具有'.txt'和'.TXT'扩展名的文件(即,它应该不区分大小写)。我为此编写了以下课程。为了达到这个目的,我应该在下面的课程中做些什么改变?

class OnlyExt implements FilenameFilter {
    String ext;

    public OnlyExt(String ext) {
        this.ext = "." + ext;
    }

    public boolean accept(File dir, String name) {
        return name.endsWith(ext);
    }
}

好吧,我在name.toLowerCase().endsWith(ext);中尝试了accept(),但这不起作用。

提前致谢。

1 个答案:

答案 0 :(得分:14)

你也需要小写扩展名。

class OnlyExt implements FilenameFilter {
    String ext;

    public OnlyExt(String ext) {
        this.ext = ("." + ext).toLowerCase();
    }

    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(ext);
    }
}

此外,最好检查一下构造函数,看看是否已经是领先的"。"如果是这样的话,不要先加上另一个。