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 总是一个目录,就这么简单。

Javadocs:

Parameters:
    dir - the directory in which the file was found.
    name - the name of the file.

您的意思可能是:

new File(dir, name).isDirectory()