通过谷歌搜索,在这个 SO 网站中,结果会出现FileUtils.listFilesAndDirs()
来自 Apache Commons IO 的方法。
但是这种方法不会递归地进入子文件夹 - 我们需要递归文件列表。
我们如何使用 Commons IO 做到这一点?
PS:
一种本地方法是使用File.listFiles()
JDK 本地支持的方法,此处已解决。
通过谷歌搜索,在这个 SO 网站中,结果会出现FileUtils.listFilesAndDirs()
来自 Apache Commons IO 的方法。
但是这种方法不会递归地进入子文件夹 - 我们需要递归文件列表。
我们如何使用 Commons IO 做到这一点?
PS:
一种本地方法是使用File.listFiles()
JDK 本地支持的方法,此处已解决。
您可以使用FileUtils.listFiles(File base, String[] extensions, boolean recursive)
.
检索所有设置recursive
为true
和extensions
的文件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)