1

1時間以上経過したすべてのPDFファイルを削除しようとしています。このコードを使用しています

System.IO.DirectoryInfo directory = new DirectoryInfo(System.Configuration.ConfigurationManager.AppSettings["PDFFilesPath"]);
var files = directory.GetFiles("*.pdf").Where(f => DateTime.Now.Subtract(f.CreationTime).TotalMinutes >= int.Parse(System.Configuration.ConfigurationManager.AppSettings["MinutesOld"]));
foreach (var file in files)
{
    file.Delete();
}

コードは正常に機能しており、期待どおりです。

しかし、これを達成するためにforeachやその他のより小さなアプローチを使用しない方法があるかどうか疑問に思っています

前もって感謝します!

4

2 に答える 2

0

ワンライナーが必要な場合は、次を使用できます。

files.ToList<FileInfo>().ForEach((FileInfo f) => { f.Delete(); });

しかし、これは非効率的であり、実際には何の意味もありません。あなたは現時点で正しい方法でそれをやっています。

詳細については、この記事を参照してください。

于 2013-01-31T09:55:17.170 に答える
0

Linq コードの最後に以下を追加して LINQ を使用できます。

.ToList()
    .ForEach(f => f.Delete());

シーンの背後にある Linq でさえイテレータを使用することに注意してください。あの時のままでいいよ

この回答も見てください

.NET を使用してディレクトリ内の 3 か月以上経過したファイルを削除する

于 2013-01-31T09:48:25.223 に答える