FilenameFilter 显示具有特定扩展名和目录的列表文件

mat*_*tip 3 java

我正在使用 FilenameFilter 类列出目录中具有特定扩展名的所有文件。但我还想列出该目录中的所有目录。我在网上搜索了一下,只找到了如何使用FilenameFilter进行多个扩展名。但是我怎样才能对目录做到这一点呢?

Here is code that I use to list all .txt files:

File[] listOfFiles = folder.listFiles(new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.toLowerCase().endsWith(".txt");
        }
    }); 
Run Code Online (Sandbox Code Playgroud)

Is there even a way to do it via filter or do I have to do it in some other way?

Arm*_*ius 5

你有很多方法可以做到这一点。特别是, ajava.io.FileFilter为您提供了比 a 更大的灵活性FilenameFilter,允许您使用以下命令测试目录isDirectory()

File[] listOfFiles = folder.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.getName().toLowerCase().endsWith(".txt") 
                    || pathname.isDirectory();
            }
        });
Run Code Online (Sandbox Code Playgroud)