【发布时间】:2015-06-05 05:11:43
【问题描述】:
我有这个功能,用于读取联系数十万个文件的目录并获取特定日期的文件数。有没有办法根据提供的日期使用搜索/计数模式?
这工作正常,但需要的时间太长。有没有更好的办法?
我正在使用 VS 2008(我的客户端 m/c。我无法升级框架或 VS)
public static int GetFileCount(DirectoryInfo filePath)
{
int requestCount = 0;
int day = -1;
FileInfo[] files = filePath.GetFiles();
DateTime minDate = DateTime.Today.AddDays(day);
DateTime maxDate = DateTime.Today;
DateTime lastWriteTime = DateTime.MinValue;
foreach (FileInfo file in files)
{
if (file.LastWriteTime < maxDate && file.LastWriteTime > minDate)
{
requestCount++;
//lastWriteTime = file.LastWriteTime;
}
}
return requestCount;
}
【问题讨论】:
-
@ZoharPeled - 建议永远不能重复,我希望文件数超过十万个文件。事实上,我上面的代码工作正常。但我期待有关如何使这更快的建议。我上面的代码需要很长时间才能给出计数值。所以任何关于优化我上面的帮助都是最重要的
-
@ZoharPeled :如果您有我的担忧,请请求将我的问题从重复提及中删除
-
抱歉,但我看不出您的问题与我所链接的问题有何显着不同。您想根据
LastWriteTime搜索文件,我链接到的问题是根据CreationTime搜索文件。这是我看到的唯一区别,而且不是很显着。 -
事情是我希望通过跟踪数千个文件来使我的代码更快地得到结果。