Minimierung der Plattenzugriffe, wenn Attribute von Dateien in einem Verzeichnis bekommen

StackOverflow https://stackoverflow.com/questions/1941633

  •  20-09-2019
  •  | 
  •  

Frage

Wie der Titel schon sagt, ich bin nach einer Möglichkeit, Attribute einer großen Anzahl von Dateien in einem Verzeichnis zu erhalten, aber die Kosten eines zusätzlichen Festplattenzugriff für jede Datei ohne Zusatz.

Zum Beispiel, wenn ich das Attribut Namen von Fileinfo-Objekten in einer Sammlung bekommen, dann gibt es keinen zusätzlichen Festplattenzugriff. Allerdings, wenn ich die LastWriteTimeUtc bekomme, dann ein zusätzlicher Festplattenzugriff wird.

Mein Code:

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!!!
}

Kennt jemand eine Weise, die ich diese Informationen in einer Hin- und Rückfahrt bekommen? Ich hätte gehofft, dass DirectoryInfo.GetFiles () tut dies aber kein Glück.

Vielen Dank im Voraus.

War es hilfreich?

Lösung 2

So geschieht dies durch Design. Die LastWriteTimeUtc ist faul geladen. Also nichts anderes schreiben meine eigene Komponente zu tun.

Andere Tipps

Wenn Sie wirklich kümmern sich um diesen, sollten Sie wahrscheinlich dies in C schreiben Findfirstfile / GetFileTime Verwendung usw.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top