gpt4 book ai didi

c# - 计算 Windows 目录中匹配文件的最快调用?

转载 作者:可可西里 更新时间:2023-11-01 11:55:38 26 4
gpt4 key购买 nike

尝试获取与给定掩码匹配的文件夹中所有文件的计数,但希望避免返回每个匹配项甚至列表的开销,因为可能有数万个匹配项。

我可以重复执行 FindNextFile 直到完成,但这是很多昂贵的往返。

这有便利的功能吗?

这是现在使用的代码,因为我需要的只是计数,寻找一种成本更低的方法来实现:

string[] files = System.IO.Directory.GetFiles(Path, InFileMask);
if (files.Length == ExpectedCount)

最佳答案

您应该能够通过使用 Microsoft Indexing Service 来实现这一点.还有 another article here .不幸的是,它并不总是在每个系统上都处于事件状态,因此并不完全可靠。

更好的选择 是实现您自己的索引服务。您可以在应用程序启动时扫描整个 PC,并依靠 FileSystemWatcher 来监听系统上的文件更改。通过这种方式,您可以实现非常快速的文件枚举,并且能够在更短的微秒内返回文件计数。

一种更简单的方法 是使用出色的 Faster Directory Enumeration Tool它还具有可以处理此问题的 mask /过滤器支持。例如

var filesCount = FastDirectoryEnumerator.GetFiles(Path, InFileMask).Length;

关于c# - 计算 Windows 目录中匹配文件的最快调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17725097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com