【发布时间】:2012-02-11 16:28:24
【问题描述】:
我需要浏览给定文件夹(及其子文件夹)的所有文件并在每个文件上执行一些操作。 我一直在寻找一种递归遍历所有文件的方法,并在 Apache Commons Io 中找到了一个解决方案: FileUtils.iterateFiles 它返回一个迭代器。 我检查了它的实现方式,发现它遍历了所有文件并将它们添加到集合中,然后返回集合的迭代器。 好吧,这就是它的作用。这就是我要找的:)
但后来我想 - 首先收集所有文件然后循环所有文件并执行我想要的是否有效? 还是我应该不收集它们,而只在递归遍历中执行操作?
应该注意,我对文件所需的操作包括对文件的 IO 操作,这可能会失败..(可以通过两种方式处理..但请注意以防我在我的思路中遗漏了一些东西) 此外,我正在遍历的文件夹和文件集可能会达到 400 个文件夹或 5000 个左右的文件,并且文件大小可能会达到几千兆(同样,在仅遍历文件时并不那么相关,但因为我打算执行 IO 任务而相关)。 .
有什么想法吗?
谢谢。
【问题讨论】: