Почему размер передаваемого файла зависит от количества свободного места на внешнем жестком диске и как этого избежать?

Я переношу некоторые файлы с GoPro (подключенного через MTP) на внешний жесткий диск. Замечу, что размер передаваемого файла зависит от того, сколько свободного места на внешнем жестком диске. Почему и как мне этого избежать?

НапримерGX040190.MP4на снимке экрана ниже, переносится и занимает 231 ГБ на целевом жестком диске во время передачи, а свободное место, доступное на внешнем жестком диске перед передачей, составляет ~244 ГБ:

хотя сам размер файла до или после передачи составляет всего ~3,9 ГБ:

Доступное дисковое пространство на внешнем жестком диске перед переносом:

Для меня это проблема при передаче нескольких файлов, потому что независимо от того, сколько места я освобождаю на жестком диске, после передачи нескольких файлов я продолжаю получать сообщение об ошибке недостаточного места на диске. Это связано с тем, что размер передаваемого файла всего на несколько ГБ меньше свободного места на внешнем жестком диске в начале передачи (и если я передаю, например, 20 файлов, будет учитываться свободное пространство, которое внешний жесткий диск имел в начале 1-й передачи файла, а не свободное место, которое было на внешнем жестком диске в начале текущей передачи файла):

Я использую Windows 10.

1 ответ

Насколько я понимаю, протокол MTP делает проводник Windows зависимым от того, что сообщает подключенное устройство. IOW, где, например, в случае USB-накопителя Windows имеет доступ на уровне блока или файловой системы, протокол MTP этого не позволяет.

Итак, опять же, в качестве примера USB-накопителя, Проводник Windows может сам определять размеры файлов, точно так же, как и в случае с локальными жесткими дисками, где в случае протокола MTP это почти так же, как если бы он обменивался данными по сетевому протоколу, где «другая сторона» определяет размер файла и сообщает об этом «клиенту».

Таким образом, MTP больше похож на «протокол связи», чем на «протокол хранения».

MTP добавляет уровень абстракции, на котором Windows может запрашивать только размер файла и должна полагаться на протокол MTP. Если сообщается о неправильном размере, Проводник Windows мало что может сделать.

MTP — это протокол передачи файлов высокого уровня, в отличие от общего протокола хранения, такого как запоминающее устройство USB. Это означает, что клиент MTP (компьютер) не видит массив байтовых блоков, составляющих структуру данных, составляющую файловую систему, а вместо этого обращается к устройству MTP в терминах файлов и папок. Это позволяет устройству MTP принимать участие в операциях высокого уровня (таких как обновление индексов метаданных), сохраняя при этом целостность своей файловой системы.

Если мое предыдущее предложение в комментариях об использовании альтернативного проводника помогло вам решить проблему, похоже, ошибка связана с проводником Windows. Если вы столкнулись с той же проблемой, скорее всего, мы не можем винить в этом Windows Explorer.

Однако лучший вариант — использовать хороший кард-ридер. Протокол MTP — очень затрудненный протокол, как было показано в вашей предыдущей теме .

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