Jak uzyskać dostęp do urządzeń MTP w wierszu poleceń w systemie Windows?

68

Większość urządzeń MTP ( Media Transfer Protocol ) pojawia się w Eksploratorze plików Windows pod nazwą urządzenia lub GUID, ale nie ma przypisanej litery dysku.

Jak mogę uzyskać dostęp do plików na takich urządzeniach z wiersza poleceń? Za pomocą cmd.exe lub PowerShell.

Peter Hahndorf
źródło
2
Fakt, że implementacje zgodne z Linux MTP, takie jak gphoto2, mają sposób przesyłania skryptów, sugeruje, że powinno to być możliwe w Windowsie, zakładając, że Windows Media Player nie blokuje w żaden sposób innego oprogramowania dostępu do interfejsu USB MTP ... I też chciałbym wiedzieć, czy jest to możliwe.
Mokubai
2
Zrezygnowałem z prób znalezienia rozwiązania tego problemu na moim urządzeniu z Androidem MTP i zakończyłem instalację serwera WebDAV na moim urządzeniu . Może to być zamontowane jako dysk sieciowy, choć powoli.
Mark Booth
WebDAV ... ugh ... To bolesne. Działa to jednak dość przyzwoicie. To ... zaskakujące ... dla mnie Windows nie wydaje się łatwo zarządzać tym, co robi Linux po wyjęciu z pudełka. No cóż.
Svartalf
@ MarkBooth Próbowałem serwera WebDAV, ale wydaje się, że większość plików, które przesyłam są uszkodzone (ponad 90%) ...
Michael
Inne rozwiązanie dla Androida działa odwrotnie, poprawiając podłączone urządzenie: 1 , 2 , 3 .
Frédéric

Odpowiedzi:

29

Niestety interfejsy API udostępnione przez MTP bardzo różnią się od zwykłych interfejsów API systemu plików. Dlatego udostępnienie urządzenia MTP jako systemu plików do odczytu / zapisu nie jest możliwe. Główny powód:

Wikipedia mówi :

Ani standardy MTP, ani PTP nie pozwalają na bezpośrednią modyfikację obiektów. Zamiast tego zmodyfikowane obiekty muszą zostać w całości ponownie załadowane, co może zająć dużo czasu w przypadku dużych obiektów. W przypadku PTP / MTP rozmiar pliku musi być znany na etapie otwierania.

Twój wspólny program do kopiowania plików po prostu otwiera plik źródłowy i docelowy oraz kopiuje dane w porcjach z pliku źródłowego do obiektu docelowego. Nie będzie to działać z MTP, ponieważ musisz użyć funkcji specjalnych MTP, a podstawowe operacje podstawowe systemu plików (odczyt, wyszukiwanie, zapis) nie są dostępne.

Istnieją również inne ograniczenia. Na przykład liczba plików, które można jednocześnie odczytywać lub zapisywać na urządzeniu MTP, jest poważnie ograniczona. Urządzenie po prostu nie zachowuje się jak system plików.

Podejrzewam, że sterownik systemu plików tylko do odczytu dla urządzenia MTP może być możliwy, ale z powodu opisanych powyżej problemów będzie on bardzo mało użyteczny, więc nikt nie zadał sobie trudu, aby go utworzyć.

haimg
źródło
3
Wydaje się, że sterownik systemu plików tylko do odczytu istnieje teraz: ptpdrive.com
Arne de Bruijn
4
W rzeczywistości nie jest to „niemożliwe”. Jeśli weźmiesz pod uwagę, że mam gphotofs i mtpfs jako systemy plików FUSE w Linuksie, które są CAŁKOWICIE odczytu / zapisu - całkiem możliwe jest osiągnięcie tego jako „litery dysku” w systemie Windows… po prostu nie udostępnili go lub łatwe.
Svartalf
3

Istnieje zastrzeżony (ale nadal miły) program: Dysk MTP ( http://www.mtpdrive.com/index.html ), który pozwala „zamontować” urządzenia MTP jako dyski w systemie Windows. Z pewnymi rozsądnymi ograniczeniami robi świetną robotę!

barbalion
źródło
1. Czy ten syntetyczny dysk MTP można przesłać do wspólnych narzędzi do odzyskiwania danych z dysku, takich jak EASEUS / Recuva / R-Studio i czy dane można skutecznie odzyskać? 2. Czy mogę korzystać z robocopy / innych narzędzi szybkiego transferu danych, aby skutecznie przenosić dane z tego napędu na rodzime dyski Windows (C / D itp.)?
SIslam
1

Być może uda ci się połączyć coś z MTPMon zestawu do portowania MTP.

Alternatywnie, PowerShell może tworzyć obiekty COM i wywoływać ich metody, więc możesz być w stanie korzystać z interfejsów API używanych przez Eksploratora Windows (na przykład GetDeviceInfo () i GetObjectInfo ()).

Arnshea
źródło