Tengo un enorme directorio de aproximadamente 500k jpg, y me gustaría archivar todos los archivos que son anteriores a cierta fecha. Actualmente, el script tarda horas en ejecutarse.Copia de archivo de rendimiento en C#?
Esto tiene mucho que ver con el funcionamiento muy pobre de los servidores de almacenamiento de GoGrid, pero al mismo tiempo, estoy seguro de que hay una forma más eficiente de acertar con la Cep/Cpu para lograr lo que estoy haciendo.
Aquí está el código que tengo:.
var dirInfo = new DirectoryInfo(PathToSource);
var fileInfo = dirInfo.GetFiles("*.*");
var filesToArchive = fileInfo.Where(f =>
f.LastWriteTime.Date < StartThresholdInDays.Days().Ago().Date
&& f.LastWriteTime.Date >= StopThresholdInDays.Days().Ago().Date
);
foreach (var file in filesToArchive)
{
file.CopyTo(PathToTarget+file.Name);
}
Los Días() Ago() cosas es sólo azúcar sintáctico.
que se basa en el sistema operativo host, que debería ser de primera categoría. –
Ya, la verdad es que podría haber millones de archivos allí, ni siquiera puedo obtener un recuento del directorio a través de Windows Explorer debido a problemas de rendimiento similares. – Scott
La gramática Nazi dice: "Performant" no es una palabra :) –