Skip to main content
 首页 » 编程设计

java之多线程递归遍历目录树的好方法是什么

2025年05月04日30rubylouvre

我正在考虑一种在目录树上进行多线程递归遍历的好方法。

我现在正在做的是获取根目录下的文件夹,并在单独的线程中对每个文件夹运行递归遍历。

这大大提高了性能,但我仍然有一个“长尾”问题 - 大文件夹需要很多时间。

有什么方法比这更好?

我为此使用 python 和 java。

谢谢。

编辑: 我不需要将文件加载到内存中。只需处理文件路径,并可能获取一些元数据信息,例如文件大小。

请您参考如下方法:

这是错误的方法,因为您不知道目录节点的深度和大小。即使您知道,目录树上的迭代本身也不会通过在多个线程中执行来加速。您想要做的是在单个线程中遍历目录,并将您在文件/目录上所做的工作提交给 ExecutorService。 . 另见 Executors