1

通过谷歌搜索,在这个 SO 网站中,结果会出现FileUtils.listFilesAndDirs()来自 Apache Commons IO 的方法。

但是这种方法不会递归地进入子文件夹 - 我们需要递归文件列表。

我们如何使用 Commons IO 做到这一点?

PS:

一种本地方法是使用File.listFiles()JDK 本地支持的方法,此处已解决。

4

1 回答 1

5

您可以使用FileUtils.listFiles(File base, String[] extensions, boolean recursive).

检索所有设置recursivetrueextensions的文件null

 FileUtils.listFiles(basePath, null, true);

或者,使用 的其他覆盖FileUtils.listFiles,您可以提供更详细的搜索参数。

如果要同时查找文件和目录而不是仅查找文件,请使用

 FileUtils.listFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)

有关更多详细信息,请参见此处

  • dirFilter参数设置搜索将在哪些目录上递归。要递归所有子目录,请使用TrueFileFilter.INSTANCE. 根本不递归,只需 base null

  • fileFilter参数选择搜索将返回的文件和目录。要返回所有这些,请使用TrueFileFilter.INSTANCE.

示例调用

FileUtils.listFilesAndDirs(basePath, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE)
于 2015-07-04T12:03:56.490 回答