Рассчитать скорость передачи файла в Pendrive
Я хочу скопировать файлы на Pendrive или на жесткий диск с помощью C#. Когда я их копирую, я могу проверить скорость передачи, проверив время и количество уже скопированных килобайт. Но есть ли способ быстро угадать скорость перед началом копирования? Я хочу знать, сколько времени займет копирование. Есть ли способ для этого?
Спасибо.
2 ответа
Но есть ли способ быстро угадать скорость перед началом копирования?
Не думаю.
Если бы был какой-то способ, предсказание продолжительности (оставшегося времени) Windows Copy-Paste было бы намного лучше.
В настоящее время я думаю, что для любой операции копирования и вставки Windows узнайте длину всех данных, которые будут скопированы. Затем во время операции копирования выясняется, сколько копируется и сколько осталось. Исходя из этого, он угадывает оставшееся время. В течение всего процесса копирования-вставки оставшееся время пересчитывается снова и снова.
Пример,
Предположим, что копируемые данные составляют 100 МБ.
Если через 1 минуту копируется 1 МБ, оставшееся время составит 99 минут.
Если через 2 минуты копируется 4 МБ, оставшееся время составит 48 минут.
Если через 10 минут копируется 5 МБ, оставшееся время составит 190 минут.
Примечание -> Выше мое наблюдение, а не авторитетный ответ, основанный на внутренней реализации алгоритма.
Расстояние = Скорость * Время
Возьмите расстояние (оставшиеся килобиты) делите на скорость (килобитов в секунду). Вы должны быть в состоянии получить грубое время в секундах.