Comment accéder aux périphériques MTP sur la ligne de commande sous Windows?

68

La plupart des périphériques MTP ( Media Transfer Protocol ) apparaissent dans l'Explorateur de fichiers Windows sous leur nom de périphérique ou un GUID, mais aucune lettre de lecteur ne leur est affectée.

Comment puis-je accéder aux fichiers sur de tels périphériques à partir de la ligne de commande? Utilisation de cmd.exe ou de PowerShell.

Peter Hahndorf
la source
2
Le fait que les implémentations compatibles Linux MTP telles que gphoto2 aient un moyen de télécharger des scripts suggère que cela devrait être possible sous Windows, en supposant que Windows Media Player n'empêche en quelque sorte aucun autre logiciel d'accéder à l'interface USB MTP ... I aimerait aussi savoir si cela est possible.
Mokubai
2
J'ai arrêté d'essayer de trouver une solution à ce problème avec mon périphérique Android MTP et j'ai fini par installer un serveur WebDAV sur mon périphérique . Cela pourrait être monté en tant que lecteur réseau, bien que lentement.
Mark Booth
WebDAV ... euh ... C'est douloureux. Cela fonctionnerait assez décemment cependant. C'est ... surprenant ... pour moi que Windows n'arrive pas à gérer ce que Linux fait sans effort. Tant pis.
Svartalf
@MarkBooth J'ai essayé le serveur WebDAV mais il semble que la plupart des fichiers que je transfère soient corrompus (plus de 90%) ...
Michael
Une autre solution pour Android va dans le sens inverse, peaufinant l’appareil connecté: 1 , 2 , 3 .
Frédéric

Réponses:

29

Malheureusement, les API exposées par MTP sont très différentes des API de système de fichiers normales. Par conséquent, exposer un périphérique MTP en tant que système de fichiers en lecture / écriture n’est pas possible. La raison principale:

Wikipedia dit :

Ni les normes MTP ni les normes PTP ne permettent de modifier directement des objets. Au lieu de cela, les objets modifiés doivent être re-téléchargés dans leur intégralité, ce qui peut prendre beaucoup de temps pour les objets volumineux. Avec PTP / MTP, la taille du fichier doit être connue à l’ouverture.

Votre programme commun de copie de fichiers ouvre simplement un fichier source et un fichier cible, et copie les données sous forme de morceaux du fichier source vers la cible. Cela ne fonctionnera pas avec MTP, car vous devez utiliser des fonctions spéciales, et les primitives de système de fichiers génériques (lecture, recherche, écriture) ne sont pas disponibles.

Il y a aussi d'autres limitations. Par exemple, le nombre de fichiers pouvant être lus ou écrits simultanément sur un périphérique MTP est extrêmement limité. Le périphérique ne se comporte tout simplement pas comme un système de fichiers.

Je suppose que le pilote de système de fichiers en lecture seule pour un périphérique MTP est peut-être possible, mais en raison des problèmes décrits ci-dessus, il sera très peu utile, donc personne ne s'est donné la peine de le créer.

haimg
la source
3
Le pilote de système de fichiers en lecture seule semble exister maintenant: ptpdrive.com
Arne de Bruijn
4
En fait, ce n'est pas "pas possible". Quand vous considérez que j'ai gphotofs et mtpfs comme systèmes de fichiers FUSE sous Linux qui sont COMPLÈTEMENT en lecture / écriture, il est tout à fait possible de réaliser cela comme une "lettre de lecteur" sous Windows ... ils ne l'ont tout simplement pas rendue disponible ou facile.
Svartalf
3

Il existe un programme propriétaire (mais toujours agréable): MTP Drive ( http://www.mtpdrive.com/index.html ) qui vous permet de "monter" des périphériques MTP en tant que lecteurs dans Windows. Avec quelques limitations raisonnables, il fait du bon travail!

barbalion
la source
1. Ce lecteur MTP synthétique peut-il être alimenté par un outil commun de récupération de données tel que EASEUS / Recuva / R-Studio et les données peuvent-elles être récupérées efficacement? 2. Puis-je utiliser robocopy / d'autres outils de transfert rapide de données pour transférer efficacement des données de ce lecteur vers des lecteurs natifs Windows (C / D, etc.)?
Isslam
1

Vous pourrez peut-être bricoler quelque chose avec MTPMon du kit de portage MTP.

Sinon, PowerShell peut créer des objets COM et appeler leurs méthodes. Vous pouvez ainsi utiliser les API utilisées par l'Explorateur Windows (par exemple, GetDeviceInfo () et GetObjectInfo ()).

Arnshea
la source