Рассчитать скорость передачи файла в Pendrive

Я хочу скопировать файлы на Pendrive или на жесткий диск с помощью C#. Когда я их копирую, я могу проверить скорость передачи, проверив время и количество уже скопированных килобайт. Но есть ли способ быстро угадать скорость перед началом копирования? Я хочу знать, сколько времени займет копирование. Есть ли способ для этого?

Спасибо.

2 ответа

Решение

Но есть ли способ быстро угадать скорость перед началом копирования?

Не думаю.

Если бы был какой-то способ, предсказание продолжительности (оставшегося времени) Windows Copy-Paste было бы намного лучше.

В настоящее время я думаю, что для любой операции копирования и вставки Windows узнайте длину всех данных, которые будут скопированы. Затем во время операции копирования выясняется, сколько копируется и сколько осталось. Исходя из этого, он угадывает оставшееся время. В течение всего процесса копирования-вставки оставшееся время пересчитывается снова и снова.

Пример,
Предположим, что копируемые данные составляют 100 МБ.
Если через 1 минуту копируется 1 МБ, оставшееся время составит 99 минут.
Если через 2 минуты копируется 4 МБ, оставшееся время составит 48 минут.
Если через 10 минут копируется 5 МБ, оставшееся время составит 190 минут.

Примечание -> Выше мое наблюдение, а не авторитетный ответ, основанный на внутренней реализации алгоритма.

Расстояние = Скорость * Время

Возьмите расстояние (оставшиеся килобиты) делите на скорость (килобитов в секунду). Вы должны быть в состоянии получить грубое время в секундах.

Другие вопросы по тегам