【问题标题】:Java - commons-io - listFiles non-recursivelyJava - commons-io - listFiles 非递归
【发布时间】:2013-09-22 10:20:39
【问题描述】:

我想使用 Apache Commons IO 的 FileUtils.listFiles 来查找目录中的所有文件,但 不想递归地执行搜索

我可以像这样递归地列出所有文件:

FileUtils.listFiles(directory,
                    new RegexFileFilter(regex),
                    DirectoryFileFilter.DIRECTORY);

这里DirectoryFileFilter.DIRECTORY 接受所有目录,因此完全递归。查看DirectoryFileFilter 的JavaDoc,我看不到任何提供的拒绝所有目录的实现。我可以自己实现它..

public class NonRecursiveDirectoryFileFilter extends DirectoryFileFilter {

    @Override
    public boolean accept(File file) {
        return false;
    }

}

我认为如果 Commons IO 包含一个方便的 DirectoryFileFilter.DIRECTORY 用于递归搜索,那么应该有一个同样方便的非递归搜索实现,不是吗? JavaDocs 建议 Commons IO 中没有提供 DirectoryFileFilter 的扩展。我忽略了什么吗?

【问题讨论】:

  • @MrLore 我实际上不知道File.listFiles! =) 我最终找到了一个FalseFileFilter,它可以解决问题,但这更干净,干杯!

标签: java apache-commons fileutils apache-commons-io


【解决方案1】:

Doi,找到了..

FalseFileFilter

一个总是返回 false 的文件过滤器。

【讨论】:

    【解决方案2】:

    我想在这里感谢@MrLore,他指出File.listFiles 完全符合我的要求。正如他所说,在编辑他的评论之前,CommonsIO 的FileUtils.listFiles 旨在提供更多功能,而我描述的用例不需要这些额外功能。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2013-11-15
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多