我正在使用 MSVE,并且我有自己的图块,我在顶部的图层中显示。问题是,它们有很多,而且它们在网络服务器上。在某些目录中,大约有 30,000 多个文件。最初我调用了 Directory.GetFiles,但一旦我开始在伪真实环境中进行测试,它就会超时。
以编程方式列出和迭代这么多文件的最佳方法是什么?
编辑:我的同事建议使用 MS 索引服务。有没有人尝试过这种方法,并且(如何)有效?
我正在使用 MSVE,并且我有自己的图块,我在顶部的图层中显示。问题是,它们有很多,而且它们在网络服务器上。在某些目录中,大约有 30,000 多个文件。最初我调用了 Directory.GetFiles,但一旦我开始在伪真实环境中进行测试,它就会超时。
以编程方式列出和迭代这么多文件的最佳方法是什么?
编辑:我的同事建议使用 MS 索引服务。有没有人尝试过这种方法,并且(如何)有效?
过去,我曾在 SAN 系统上使用电话录音,该系统在单个文件夹中的文件数量存在问题 - 该系统在接近 5,000 个的地方变得无法使用(在 Windows 2000 Advanced Server 上使用 C#.Net 1.1 中的应用程序) -我们想出的唯一明智的解决方案是更改文件夹结构,以便有更合理的文件数量。有趣的是,Explorer 也会超时!
我们提出的约定是一种结构,该结构以年、月和日为单位进行分解-但这取决于您的系统以及您是否可以控制目录结构...
果断分道扬镳。也就是说,尽可能远离索引服务。
没有任何。.NET 依赖于底层的 Windows API 调用,这些调用本身非常非常讨厌这么多文件。
正如罗尼所说:把他们分开。
可以用DOS吗?
DIR /s/b > Files.txt
您还可以查看自己为文件编制索引,或者让第三方应用程序(如 google desktop 或copernic)来执行此操作,然后与他们的索引进行交互。我知道 copernic 有一个 API,您可以使用它来搜索其索引中的任何文件,它还支持映射网络驱动器。