7

我需要获取具有特定扩展名(例如 .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(),但是没有用。

提前致谢。

4

1 回答 1

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

此外,检查构造函数以查看是否已经有前导“。”可能是一个好主意。如果是这样,不要在前面添加另一个。

于 2011-11-22T09:33:30.063 回答