【发布时间】:2015-01-08 14:34:35
【问题描述】:
目前我正在使用以下代码从文件夹中查找下一个文件。基本上我存储我读取的文件的最后修改日期和时间,在我完成处理该文件后,我需要转到下一个文件。但是我的代码目前需要大约 10 秒来使用下面的代码搜索下一个文件。
有人可以提出更快的方法吗?
DateTime lastfile = DateTime.Parse(System.IO.File.ReadAllText(@"lastFile.txt"));
string[] systemAFiles = System.IO.Directory.GetFiles("G:\\");
foreach (string files in systemAFiles)
{
DateTime lastWriteTime = System.IO.File.GetLastWriteTime(files);
if (lastWriteTime > lastfile) //produced after last file was read
{
readxml(files);
break;
}
}
【问题讨论】:
-
要查看和改进现有的工作代码,您可能需要查看CodeReview.SE。虽然您的问题在 Stack Overflow 上并没有明确偏离主题,但更多的是关于 CodeReview 的主题。
-
哪个部分耗时最长?
-
我会使用
System.IO.Directory.EnumerateFiles.Where(f=> lastWriteTime > System.IO.File.GetLastWriteTime(f)),这在这种情况下会更有效,但我怀疑它是否会产生很大的不同。你确定不是readxml是慢的部分吗? -
No No.. readxml 什么都不做.. 即使我给一个消息框,消息框也会在 10 秒后出现,而不是 readxml。因为我正在搜索的文件夹有大约 2000 到 2500 个文件。 :(
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。