Como acesso dispositivos MTP na linha de comando no Windows?

66

A maioria dos dispositivos MTP ( Media Transfer Protocol ) é exibida no Windows File Explorer com o nome do dispositivo ou um GUID, mas eles não têm uma letra de unidade atribuída.

Como posso acessar os arquivos nesses dispositivos na linha de comando? Usando cmd.exe ou PowerShell.

Peter Hahndorf
fonte
2
O fato de que as compatíveis Linux MTP implementações como gphoto2 tem uma maneira de fazer o upload roteiro sugere que isso deve ser possível no Windows de alguma forma, assumindo que o Windows Media Player não de alguma forma bloquear qualquer outro software de acessar a interface MTP USB ... I também gostaria de saber se isso é possível.
Mokubai
2
Desisti de tentar encontrar uma solução para isso no meu dispositivo Android MTP e acabei instalando um servidor WebDAV no meu dispositivo . Isso pode ser montado como uma unidade de rede, embora lentamente.
Mark Booth
WebDAV ... ugh ... Isso é doloroso. Isso funcionaria decentemente o suficiente. É ... surpreendente ... para mim que o Windows não consiga gerenciar o que o Linux faz sem esforço. Ah bem.
Svartalf
@MarkBooth Tentei o servidor WebDAV mas parece a maioria dos arquivos que transferir são corruptos (mais de 90%) ...
Michael
Outra solução para o Android, ao contrário, aprimorando o dispositivo conectado: 1 , 2 , 3 .
Frédéric

Respostas:

28

Infelizmente, as APIs expostas pelo MTP são muito diferentes das APIs normais do sistema de arquivos. Portanto, não é possível expor o dispositivo MTP como um sistema de arquivos de leitura / gravação . A principal razão:

A Wikipedia diz :

Nem os padrões MTP nem PTP permitem a modificação direta de objetos. Em vez disso, os objetos modificados devem ser carregados novamente por inteiro, o que pode levar muito tempo para objetos grandes. Com PTP / MTP, o tamanho do arquivo deve ser conhecido no estágio de abertura.

Seu programa de cópia de arquivo comum apenas abre uma fonte e um arquivo de destino e copia dados em pedaços do arquivo de origem para o destino. Isso não funcionará com o MTP, pois você precisará usar funções especiais do MTP e as primitivas genéricas do sistema de arquivos (leitura, busca, gravação) não estão disponíveis.

Existem também outras limitações. Por exemplo, o número de arquivos que podem ser lidos ou gravados simultaneamente em um dispositivo MTP é severamente limitado. O dispositivo simplesmente não se comporta como um sistema de arquivos.

Suponho que o driver do sistema de arquivos somente leitura para um dispositivo MTP possa ser possível, mas, devido aos problemas descritos acima, será muito pouco útil, portanto ninguém se preocupou em criá-lo.

haimg
fonte
3
O driver de sistema de arquivos somente leitura parece existir agora: ptpdrive.com
Arne de Bruijn
4
Na verdade, não é "impossível". Quando você considera que eu tenho gphotofs e mtpfs como sistemas de arquivos FUSE no Linux que são COMPLETAMENTE Lidos / Escritos - é bem possível fazer isso como uma "letra de unidade" no Windows ... eles simplesmente não o disponibilizaram ou fácil.
Svartalf
2

Existe um programa proprietário (mas ainda agradável): MTP Drive ( http://www.mtpdrive.com/index.html ) que permite "montar" dispositivos MTP como unidades no Windows. Com algumas limitações razoáveis, ele faz um ótimo trabalho!

barbalion
fonte
1. Essa unidade MTP sintética pode ser alimentada por ferramentas comuns de recuperação de dados da unidade como EASEUS / Recuva / R-Studio e os dados podem ser recuperados com eficiência? 2. Posso usar robocopy / outras ferramentas de transferência rápida de dados para transferir dados dessa unidade para unidades nativas do Windows (C / D etc.) com eficiência?
precisa saber é o seguinte
1

Você pode consertar algo junto com o MTPMon do kit de portabilidade MTP.

Como alternativa, o PowerShell pode criar objetos COM e chamar seus métodos, para que você possa usar as APIs usadas pelo Windows Explorer (por exemplo, GetDeviceInfo () e GetObjectInfo ()).

Arnshea
fonte