Ridurre al minimo gli accessi al disco quando ottenere gli attributi di file in una directory
-
20-09-2019 - |
Domanda
Come suggerisce il titolo, sto cercando un modo per ottenere gli attributi di un gran numero di file in una directory, ma senza aggiungere il costo di un ulteriore accesso disco per ogni file.
Per esempio, se ho l'attributo Nome di oggetti FileInfo in una collezione, allora non c'è accesso al disco aggiuntivo. Tuttavia, se ho la LastWriteTimeUtc, poi un accesso al disco aggiuntivo è fatto.
Il mio codice:
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!!!
}
Qualcuno sa di un modo per ottenere queste informazioni su uno di andata e ritorno? Avrei sperato che DirectoryInfo.GetFiles () fa questo, ma senza fortuna.
Grazie in anticipo.
Soluzione 2
Quindi, questo avviene in base alla progettazione. Il LastWriteTimeUtc è pigro caricato. Quindi, niente da fare altro scrivere la mia componente.
Altri suggerimenti
Se davvero cura di questo, probabilmente si dovrebbe scrivere questo in C usando FindFirstFile / GetFileTime, ecc