web-dev-qa-db-fra.com

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

La plupart des périphériques MTP ( Media Transfer Protocol ) s'affichent 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.

62
Peter Hahndorf

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 fichier 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 un 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 ne sera d'aucune utilité et personne ne s'est donné la peine de le créer.

26
haimg

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

2
barbalion

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

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

1
Arnshea