我正在使用 MSVE,并且我有自己的图块,并在顶部的图层中显示。问题是,它们有很多,并且位于网络服务器上。在某些目录中,大约有 30,000 多个文件。最初我调用了 Directory.GetFiles,但是当我开始在伪真实环境中进行测试时,它就超时了。

以编程方式列出和迭代这么多文件的最佳方法是什么?

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

有帮助吗?

解决方案

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

我们提出的约定是一种将结构分解为年、月和日的结构 - 但这将取决于您的系统以及您是否可以控制目录结构......

其他提示

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

没有任何。.NET 依赖于底层的 Windows API 调用,而这些 API 调用本身确实非常讨厌大量的文件。

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

可以用DOS吗?

DIR /s/b > Files.txt

您还可以查看自己对文件建立索引,或者获取第三方应用程序,例如谷歌桌面或 哥白尼的 这样做,然后与他们的索引进行交互。我知道 copernic 有一个 API,您可以使用它来搜索索引中的任何文件,并且它还支持映射网络驱动器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top