在搜索目录树时,使用SearchOption或递归搜索的Directory.GetFiles。

8
在搜索目录树(文件夹及其所有子文件夹)中的文件时,以下两种方式有何有效区别:

Directory.GetFiles(root, "*", SearchOption.AllDirectories);

并且使用 Directory.GetFiles(root) 和 Directory.GetDirectories(root) 进行递归搜索。

每种方法的优缺点是什么,哪种方法适用于哪种用例?感谢。

1个回答

3

你可能想在这种情况下自己编写递归的主要原因是,你希望能够在长时间文件搜索过程中设置自定义进度更新/通知给用户。

如果你从一开始就将所有内容交给框架方法处理,那么这是不可能实现的。


1
另一个你会使用自己的递归的场景是当进程可能无法访问某些子目录时(如在此答案中所述)。 - Jeff B
@JeffBridgman:说得好。基本上,如果你想要对搜索过程进行细粒度控制!默认提供的对于大多数情况来说都很好,但是对于某些应用程序来说,拥有更多的控制权是很好的。 - Baldrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接