disco minimizando accede al conseguir atributos de los archivos en un directorio
-
20-09-2019 - |
Pregunta
Como sugiere el título, estoy buscando una manera de obtener atributos de un gran número de archivos en un directorio, pero sin añadir el coste de un acceso adicional en disco para cada archivo.
Por ejemplo, si consigo el atributo Nombre de objetos FileInfo en una colección, entonces no hay acceso al disco adicional. Sin embargo, si tengo la LastWriteTimeUtc, a continuación, un acceso adicional en disco está hecho.
Mi código:
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!!!
}
¿Alguien sabe de una manera que puede obtener esta información en una ida y vuelta? Yo habría esperado que DirectoryInfo.GetFiles () hace esto, pero sin suerte.
Gracias de antemano.
Solución 2
Por lo tanto, esto ocurre por diseño. El LastWriteTimeUtc es perezoso cargado. Así que nada que hacer aparte de escribir mi propio componente.
Otros consejos
Si realmente se preocupan por esto, probablemente debería escribir esto en C usando FindFirstFile / GetFileTime, etc.