我需要获取目录中具有特定扩展名(例如.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()
,但这不起作用。
提前致谢。
答案 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);
}
}
此外,最好检查一下构造函数,看看是否已经是领先的"。"如果是这样的话,不要先加上另一个。