Большинство устройств MTP ( Media Transfer Protocol ) отображаются в проводнике Windows под своим именем устройства или идентификатором GUID, но им не назначается буква диска.
Как я могу получить доступ к файлам на таких устройствах из командной строки? Использование cmd.exe или PowerShell.
windows
command-line
mtp
Питер Хандорф
источник
источник
Ответы:
К сожалению, API, предоставляемые MTP, сильно отличаются от API-интерфейсов обычной файловой системы. Поэтому показ устройства MTP как файловой системы для чтения / записи невозможен. Главная причина:
Википедия говорит :
Ваша обычная программа копирования файлов просто открывает исходный и целевой файл и копирует данные в виде фрагментов из исходного файла в целевой. Это не будет работать с MTP, так как вам нужно использовать специальные функции MTP, а общие примитивы файловой системы (чтение, поиск, запись) недоступны.
Есть и другие ограничения. Например, количество файлов, которые могут быть прочитаны или записаны одновременно на устройстве MTP, строго ограничено. Устройство просто не ведет себя как файловая система.
Я полагаю, что драйвер файловой системы только для чтения для устройства MTP может быть возможен, но из-за проблем, описанных выше, он будет очень мало полезен, поэтому никто не удосужился его создать.
источник
Существует проприетарная (но все же приятная) программа: MTP Drive ( http://www.mtpdrive.com/index.html ), которая позволяет вам «монтировать» устройства MTP как диски в Windows. С некоторыми разумными ограничениями это делает большую работу!
источник
Возможно, вам удастся что-то сделать вместе с MTPMon набора для переноса MTP.
В качестве альтернативы PowerShell может создавать COM- объекты и вызывать их методы, поэтому вы можете использовать API-интерфейсы, которые использует Windows Explorer (например, GetDeviceInfo () и GetObjectInfo ()).
источник