C# 在目录中搜索成吨的文件?

C# 在目录中搜索成吨的文件?,c#,directory,file-management,C#,Directory,File Management,我使用的是MSVE,我有自己的瓷砖,我在上面分层显示。问题是,它们有很多,而且都在网络服务器上。在某些目录中,大约有30000多个文件。最初我调用Directory.GetFiles,但一旦我开始在伪真实环境中进行测试,它就超时了 以编程方式列出并遍历这么多文件的最佳方式是什么 编辑:我的同事建议使用MS索引服务。有人尝试过这种方法吗?它是如何工作的?我曾经在一个SAN系统上工作过,该系统在一个文件夹中的文件数出现问题—该系统在5000个左右无法使用(在Windows 2000 Advanced

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

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


编辑:我的同事建议使用MS索引服务。有人尝试过这种方法吗?它是如何工作的?

我曾经在一个SAN系统上工作过,该系统在一个文件夹中的文件数出现问题—该系统在5000个左右无法使用(在Windows 2000 Advanced Server上,带有C#.Net 1.1中的应用程序)-我们提出的唯一明智的解决方案是更改文件夹结构,以便有更合理数量的文件。有趣的是,Explorer也会超时


我们提出的约定是一种结构,它在数年、数月和数天内将结构分解,但这将取决于您的系统以及您是否能够控制目录结构…

无。NET依赖于底层的Windows API调用,而这些调用本身就非常讨厌这么多的文件

正如罗尼所说:把它们分开。

你可以用DOS吗

DIR /s/b > Files.txt

肯定是把他们分开了。也就是说,尽可能远离索引服务。

你也可以自己为文件编制索引,或者使用第三方应用程序(如google desktop)或这样做,然后与索引交互。我知道哥白尼有一个API,你可以用它来搜索索引中的任何文件,它还支持映射网络驱动器。

(我现在在一家新公司,但我确实记得这个项目的部分内容。)问题是,好吧,MSVE有一个它期望的特定文件夹结构——一个层的所有内容都放在一个文件夹中。我们没有充分研究它,不知道我们是否能够聚合多个文件夹,以便MSVE可以查看所有文件夹,或者查看特定级别的特定文件夹。幸运的是,我们从未尝试使用索引服务。我所在的团队现在只剩下一个人了。因此,我认为这部分项目已经在优先事项清单上下降了很多。