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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top