我有一个包含大约500k个jpg文件的巨大目录,并且我想归档所有早于某个日期的文件。目前,这个脚本运行需要几个小时。
这与GoGrid的存储服务器性能非常差有很大关系,但同时,我相信有更有效的方式在内存/CPU方面完成我正在做的事情。
这是我现在拥有的代码:
var dirInfo = new DirectoryInfo(PathToSource);
var fileInfo = dirInfo.GetFiles("*.*");
var filesToArchive = fileInfo.Where(f =>
f.LastWriteTime.Date < StartThresholdInDays.Days().Ago().Date
&& f.LastWriteTime.Date >= StopThresholdInDays.Days().Ago().Date
);
foreach (var file in filesToArchive)
{
file.CopyTo(PathToTarget+file.Name);
}
Days().Ago() 只是一种语法糖。