responder con una simple multiplicación cruzada es terriblemente condescendiente. Creo que estoy seguro de que él ya lo sabía, así es como también constantemente estimamos las cosas en nuestra cabeza.
El problema con las barras de progreso de la operación de archivos es que solo es correcto para datos uniformes, por lo que si copia 100 archivos que tienen todos el mismo tamaño y su unidad no está haciendo nada más, el progreso estimado será perfecto, pero ¿y si el primero ¿99 archivos eran pequeños archivos txt y el último es un archivo de video grande? El progreso estará MUY BIEN.
Este problema aumenta aún más cuando no maneja archivos en una carpeta, sino en varias subcarpetas. Supongamos que tiene 5 subcarpetas y desea eliminarlas (el tamaño no importa mucho en este caso, entonces), las primeras 4 carpetas solo contienen menos de 10 archivos, por lo que para cuando la operación llega a la quinta carpeta, cree que se trata 80% hecho, y la quinta carpeta boom contiene 5000 archivos y su progreso vuelve al 1%
WinXP intentó evitar esto contando de antemano el número de archivos, lo que significaba que cuando la carpeta no estaba indexada en Windows, dependiendo del número de archivos, XP realmente no comenzó la operación durante los primeros 20 segundos (tiempo que le llevó a contar) lo que enfureció a todos.
Entonces, aunque tampoco tengo un conocimiento especial sobre cómo lo hace Windows (pero qué más hay aparte de contar archivos y bytes) Espero poder ilustrar por qué es defectuoso y por qué nunca será perfecto.
Lo mejor que podría hacer sería no depender únicamente del recuento de archivos O bytecount, sino generar un promedio de los dos.
O si desea volverse loco, el sistema operativo podría iniciar una base de datos de cuánto tiempo tomaron estas operaciones en el pasado en su máquina e incluirlo en la ecuación.
Pensamiento final: si alguien piensa en un sistema de archivos que le permita al sistema operativo saber qué tamaño tiene cada carpeta, sin calcularlo primero, al menos obtendría una estimación correcta del progreso al eliminar carpetas enteras y no solo partes de ella.