タイトルが示すように、ディレクトリ内の多数のファイルの属性を取得する方法を探していますが、ファイルごとに追加のディスクアクセスのコストを追加する必要はありません。
たとえば、コレクション内のFileInfoオブジェクトのName属性を取得した場合、追加のディスクアクセスはありません。ただし、LastWriteTimeUtcを取得すると、追加のディスクアクセスが行われます。
私のコード:
DirectoryInfo di = new DirectoryInfo(myDir);
FileInfo[] allFiles = di.GetFiles("*.*", SearchOption.TopDirectoryOnly);
foreach (FileInfo fInfo in allFiles)
{
name = fInfo.Name //no additional disk access made
lastMod = fInfo.LastWriteTimeUtc //further disk access made!!!
}
この情報を1回の往復で取得する方法を知っている人はいますか?DirectoryInfo.GetFiles()がこれを実行することを期待していましたが、運がありませんでした。
前もって感謝します。