FilenameFilter 产生神秘的结果
FilenameFilter yielding mysterious result
这是我的 FilenameFilter
,它应该只允许以 .docx
结尾的目录和文件。然而,出于某种原因,它现在允许每个文件,无论结尾是什么,或者它是否是一个目录。一旦我删除 || dir.isDirectory()
它会按预期工作。
new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.toLowerCase().endsWith(".docx") || dir.isDirectory()) {
return true;
}
return false;
}
})
我做错了什么,它接受每个文件?
dir
总是一个目录,就这么简单。
Parameters:
dir - the directory in which the file was found.
name - the name of the file.
您的意思可能是:
new File(dir, name).isDirectory()
这是我的 FilenameFilter
,它应该只允许以 .docx
结尾的目录和文件。然而,出于某种原因,它现在允许每个文件,无论结尾是什么,或者它是否是一个目录。一旦我删除 || dir.isDirectory()
它会按预期工作。
new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.toLowerCase().endsWith(".docx") || dir.isDirectory()) {
return true;
}
return false;
}
})
我做错了什么,它接受每个文件?
dir
总是一个目录,就这么简单。
Parameters: dir - the directory in which the file was found. name - the name of the file.
您的意思可能是:
new File(dir, name).isDirectory()