відповідь простим перехресним множенням жахливо поблажливий. Я думаю, я впевнений, що він це вже знав, це те, як ми постійно здогадуємось про речі і в нашій голові.
Проблема з панелями прогресу роботи з файлами полягає в тому, що вона коректна лише для рівномірних даних, тому якщо ви копіюєте 100 файлів, які мають однаковий розмір, а ваш диск не робить нічого іншого, прогнозований прогрес буде виявлений, але що робити, якщо перший 99 файлів були невеликими txt-файлами, а останній - великим відеофайлом? Прогрес буде ЗАВЕРШЕНО.
Ця проблема ще більше посилюється, коли ви не обробляєте файли в одній папці, а декілька підпапок. Скажімо, у вас є 5 підпапок, і ви хочете їх видалити (розмір не має великого значення в цьому випадку), перші 4 папки містять лише менше 10 файлів, тож до моменту операції надходить до 5-ї папки, на яку вона думає, що це стосується 80% виконано, а папка 5-го буму містить 5000 файлів, а ваш прогрес скачується до 1%
WinXP намагався обійти це, попередньо підрахувавши кількість файлів, що означало, що коли папка не індексувалася у Windows, залежно від кількості файлів, XP не справді запускав операцію протягом перших 20 секунд (час, який знадобився підрахунок), що всіх розлютило.
Тож, хоча я також не маю спеціальних знань щодо того, як це робить Windows (але що ще є, окрім підрахунку файлів і байтів), я сподіваюся, що я міг би проілюструвати, чому він хибний і чому він ніколи не буде ідеальним.
Найкраще, що ви могли б зробити, - це не покладатися лише на кількість файлів АБО, але будувати середнє значення з двох.
Або якщо ви хотіли звести з розуму додаткові дії, ОС може запустити базу даних про те, як тривали ці операції в минулому на вашій машині, і врахуйте, що це в рівняння.
Заключна думка: Якщо хтось подумає про файлову систему, яка дозволила б ОС знати, який розмір має кожна папка, не обчислюючи її спочатку, ви принаймні отримаєте правильну оцінку ходу при видаленні цілих папок, а не лише їх частин.