在目录中搜索大量文件?

时间:2008-08-06 14:57:17

标签: c# directory file-management

我正在使用MSVE,我有自己的瓷砖,我在顶层显示。问题是,有很多,他们在网络服务器上。在某些目录中,有大约30,000多个文件。最初我调用了Directory.GetFiles,但是一旦我开始在伪实际环境中进行测试,它就会超时。

以编程方式列出并遍历这么多文件的最佳方法是什么?

编辑:我的同事建议使用MS索引服务。有没有人尝试过这种方法,并且(如何)有效?

5 个答案:

答案 0 :(得分:4)

我过去曾在一个SAN系统上使用过电话音频录音,这些录音存在单个文件夹中的文件数量问题 - 该系统在5,000附近变得无法使用(在带有C#.Net应用程序的Windows 2000 Advanced Server上) 1.1) - 我们提出的唯一明智的解决方案是更改文件夹结构,以便有更合理的文件数。有趣的是Explorer也会超时!

我们提出的惯例是一种在几年,几个月和几天内破坏结构的结构 - 但这取决于您的系统以及您是否可以控制目录结构......

答案 1 :(得分:2)

绝对将它们分开。也就是说,尽可能远离索引服务。

答案 2 :(得分:1)

无。 .NET依赖于底层的Windows API调用,这些调用确实非常讨厌那些文件本身。

正如罗尼所说:将他们分开。

答案 3 :(得分:1)

你可以使用DOS吗?

DIR /s/b > Files.txt

答案 4 :(得分:1)

您还可以查看自己索引文件,或者获取第三方应用程序(如Google桌面或copernic)来执行此操作,然后与其索引进行交互。我知道copernic有一个API,可用于搜索索引中的任何文件,它还支持映射网络驱动器。