FilenameFilter产生神秘的结果

时间:2017-12-01 15:59:01

标签: java filtering filenames

这是我的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;
    }
})

我做错了什么,它接受每个文件?

1 个答案:

答案 0 :(得分:3)

dir始终是一个目录,就像那样简单。

Javadocs

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

你可能意味着:

new File(dir, name).isDirectory()