Wie greife ich in Windows über die Befehlszeile auf MTP-Geräte zu?

68

Die meisten MTP- Geräte ( Media Transfer Protocol ) werden im Windows-Datei-Explorer unter ihrem Gerätenamen oder einer GUID angezeigt, ihnen ist jedoch kein Laufwerksbuchstabe zugewiesen.

Wie kann ich über die Befehlszeile auf die Dateien auf solchen Geräten zugreifen? Verwenden Sie entweder cmd.exe oder PowerShell.

Peter Hahndorf
quelle
2
Die Tatsache, dass Linux-MTP-kompatible Implementierungen wie gphoto2 eine Möglichkeit zum Hochladen von Skripten bieten, legt nahe, dass dies unter Windows möglich sein sollte , vorausgesetzt, dass Windows Media Player keine andere Software am Zugriff auf die USB-MTP-Schnittstelle hindert ... I Auch würde gerne wissen, ob dies möglich ist.
Mokubai
2
Ich habe den Versuch, eine Lösung für dieses Problem mit meinem Android-MTP-Gerät zu finden, aufgegeben und schließlich einen WebDAV-Server auf meinem Gerät installiert . Dies könnte , wenn auch langsam, als Netzwerklaufwerk gemountet werden.
Mark Booth
WebDAV ... ugh ... Das ist schmerzhaft. Es würde aber anständig genug funktionieren. Es ist ... überraschend ... für mich, dass Windows nicht in der Lage zu sein scheint, die Aufgaben von Linux mühelos zu erledigen. Naja.
Svartalf
@ MarkBooth Ich habe versucht, den WebDAV-Server, aber es scheint, die meisten Dateien, die ich übertrage, sind beschädigt (über 90%) ...
Michael
Andere Lösung für Android in die andere Richtung, das angeschlossene Gerät zu optimieren: 1 , 2 , 3 .
Frédéric

Antworten:

29

Leider unterscheiden sich APIs, die durch MTP verfügbar gemacht werden, stark von normalen Dateisystem-APIs. Daher ist es nicht möglich , ein MTP-Gerät als Lese- / Schreib- Dateisystem bereitzustellen. Der Hauptgrund:

Wikipedia sagt :

Weder der MTP- noch der PTP-Standard erlauben eine direkte Änderung von Objekten. Stattdessen müssen geänderte Objekte vollständig neu hochgeladen werden, was bei großen Objekten sehr lange dauern kann. Bei PTP / MTP muss die Dateigröße in der Eröffnungsphase bekannt sein.

Ihr gemeinsames Dateikopierprogramm öffnet lediglich eine Quell- und eine Zieldatei und kopiert Daten in Stücken von der Quelldatei in das Ziel. Dies funktioniert mit MTP nicht, da Sie MTP-Sonderfunktionen verwenden müssen und generische Dateisystemprimitive (Lesen, Suchen, Schreiben) nicht verfügbar sind.

Es gibt auch andere Einschränkungen. Beispielsweise ist die Anzahl der Dateien, die gleichzeitig auf einem MTP-Gerät gelesen oder geschrieben werden können, stark begrenzt. Das Gerät verhält sich einfach nicht wie ein Dateisystem.

Ich nehme an , dass ein schreibgeschützter Dateisystemtreiber für ein MTP-Gerät möglich sein könnte, aber aufgrund der oben beschriebenen Probleme wird er kaum von Nutzen sein, sodass sich niemand die Mühe gemacht hat, ihn zu erstellen.

haimg
quelle
3
Der schreibgeschützte Dateisystemtreiber scheint jetzt zu existieren: ptpdrive.com
Arne de Bruijn
4
Eigentlich ist es nicht "nicht möglich". Wenn Sie bedenken, dass ich gphotofs und mtpfs als FUSE-Dateisysteme unter Linux habe, die VOLLSTÄNDIG Lese- / Schreibzugriff haben, ist es durchaus möglich, dies als "Laufwerksbuchstabe" unter Windows zu bewerkstelligen ... sie haben es einfach nicht verfügbar gemacht oder einfach.
Svartalf
3

Es gibt ein proprietäres (aber immer noch nettes) Programm: MTP Drive ( http://www.mtpdrive.com/index.html ), mit dem Sie MTP-Geräte als Laufwerke in Windows "mounten" können. Mit einigen vernünftigen Einschränkungen macht es den tollen Job!

Barbalion
quelle
1. Kann dieses synthetische MTP-Laufwerk in gängige Tools zur Wiederherstellung von Laufwerkdaten wie EASEUS / Recuva / R-Studio eingespeist und Daten effizient wiederhergestellt werden? 2. Kann ich Robocopy / andere Tools für die schnelle Datenübertragung verwenden, um Daten von diesem Laufwerk auf systemeigene Windows-Laufwerke (C / D usw.) effizient zu übertragen?
Islam
1

Möglicherweise können Sie mit dem MTPMon des MTP-Portierungskits etwas zusammenpflastern.

Alternativ kann PowerShell COM- Objekte erstellen und deren Methoden aufrufen, sodass Sie möglicherweise die von Windows Explorer verwendeten APIs verwenden können (z. B. GetDeviceInfo () und GetObjectInfo ()).

Arnshea
quelle