だから私と一緒に裸で。私がしたいのは、何かで始まる複数のファイルのディレクトリを検索/スキャンし、最後に最後に変更されたファイルを取得することです。たとえば、 "apple"、 "pear"、 "orange"で始まるファイルのディレクトリPrefetchを検索したいとします。これらのファイルは存在しないかもしれませんが、そうであればリンゴで始まるファイルと、pearで始まるファイルがあり、それらのファイルのうち、最近変更されたファイルを取得したいとします。以下のコードは私にこれを可能にしますが、1つだけを検索します。ディレクトリで何かで始まるファイルを検索する方法は、一番最近変更されたファイルを取得する
DirectoryInfo prefetch = new DirectoryInfo("c:\\Windows\\Prefetch");
FileInfo[] apple = prefetch.GetFiles("apple*");
if (apple.Length == 0)
// Do something
else
{
double lastused = DateTime.Now.Subtract(
apple.OrderByDescending(x => x.LastWriteTime)
.FirstOrDefault().LastWriteTime).TotalMinutes;
int final = Convert.ToInt32(lastused);
}
基本的に、リンゴの代わりにコード検索「apple」、「pear」などを作成するにはどうすればよいですか?上記のコードを修正して完全に変更する必要があるかどうかはわかりません。私は何時間もこれを理解しようとしてきましたが、それはできません。
List<string> files=new List<string>();
foreach(var str in prefixes)
files.AddRange(dirInfo.GetFiles(str));
return (from d in (from name in files select File.GetLastAccessTime(name)) orderby d descending).FirstOrDefault();
プレフィックスは、検索パターンのリストであり、そしてdirInfoはDirectoryInfoです:
あなたはその後、それらのファイルの日付を確認接頭辞に一致するファイルのセットを作成することができ
GetFilesを適切なパターンで3回コールし、3つの異なる配列に結果を格納し、それらを単一のリストに追加します。これで、降順で順序を適用し、リストの最初の要素を取得できます。最終的にその計算で何をしようとしているのかはっきりしない – Steve
これがどのように機能し、おそらく私の問題を解決するのか分かりますが、どうすればそれらを保存してリストに追加できますか? – DylanC
** List **を宣言し、AddRangeを使用して3つのファイルセットを同じリストに追加します。今、そのリストのOrderByDescendingとFirstOrDefaultが、あなたにセットの最新の書かれたファイルを与えるでしょう。 –
Steve