Desea copiar los archivos uno por uno, pero con toda la E / S hecha asíncrono .
Lo que significa que la aplicación emitirá varias solicitudes de lectura a la vez y que el sistema operativo las completará y le indicará a la aplicación que hay un bloque listo. La aplicación emitirá una solicitud de escritura y, nuevamente, el sistema operativo la completará según su propio calendario y notificará a la aplicación cuando esté lista. En la práctica, esto significará que la aplicación tendrá varias solicitudes de lectura pendientes y varias solicitudes de escritura pendientes en cualquier momento.
En segundo lugar, lo que importa es el tamaño de las solicitudes de lectura / escritura. Las versiones recientes de Windows (a partir de Vista) son más rápidas para leer datos en bloques más pequeños y para escribirlos en bloques más grandes. Por otro lado, la lectura desde una ubicación de red es más rápida con bloques más grandes.
Así es como Windows posee robocopy
Funciona y es muy bueno.
-
Como beneficio adicional, al copiar lotes y lotes de archivos pequeños, el proceso de copia termina gastando un tiempo desproporcionadamente largo abriendo y cerrando archivos. Entonces, lo que quiere es una aplicación que se vea por delante de su cola de copia y abra previamente los archivos con anticipación. Esta De Verdad patea la copia a otro nivel en términos de velocidad.