私は約500k jpgファイルの巨大なディレクトリを持っています、そして、私は特定の日付より古いすべてのファイルをアーカイブしたいと思います。現在、スクリプトは実行に数時間かかる。C#の実行ファイルコピー?
これは、GoGridのストレージサーバの非常にうんざりしたパフォーマンスと関係がありますが、同時に、私がやっていることを達成するためにRam/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);
}
日()アゴー()のものは単なる糖衣構文です:
は、ここで私が持っているコードです。
依存していることホストオペレーティングシステムではトップレベルでなければなりません。 –
ええ、真実はそこに何百万ものファイルがある可能性があります、私はWindowsエクスプローラを介して同様のパフォーマンスの問題のためにディレクトリのカウントを取得することはできません。 – Scott
文法ナチは言う: "Performant"は単語ではありません:) –