Come posso accedere ai dispositivi MTP dalla riga di comando in Windows?


68

La maggior parte dei dispositivi MTP ( Media Transfer Protocol ) vengono visualizzati in Esplora file di Windows con il nome del dispositivo o un GUID, ma non hanno una lettera di unità assegnata.

Come posso accedere ai file su tali dispositivi dalla riga di comando? Utilizzando cmd.exe o PowerShell.


2
Il fatto che le implementazioni compatibili con MTP Linux come gphoto2 abbiano un modo per caricare gli script suggerisce che ciò dovrebbe essere possibile su Windows in qualche modo, supponendo che Windows Media Player non blocchi in qualche modo nessun altro software dall'accesso all'interfaccia MTP USB ... I anche a me piacerebbe sapere se questo è possibile.
Mokubai

2
Ho rinunciato a cercare una soluzione per questo con il mio dispositivo MTP Android e ho finito per installare un server WebDAV sul mio dispositivo . Questo potrebbe essere montato come unità di rete, anche se lentamente.
Mark Booth,

WebDAV ... ugh ... È doloroso. Funzionerebbe abbastanza decentemente però. È ... sorprendente ... per me che Windows non riesca a gestire ciò che Linux fa senza sforzo senza sforzo. Oh bene.
Svartalf,

@MarkBooth Ho provato il server WebDAV ma sembra che la maggior parte dei file che trasferisco siano corrotti (oltre il 90%) ...
Michael,

Altra soluzione per Android che fa il contrario, ottimizzando il dispositivo connesso: 1 , 2 , 3 .
Frédéric,

Risposte:


29

Sfortunatamente, le API esposte da MTP sono molto diverse dalle normali API del filesystem. Pertanto non è possibile esporre il dispositivo MTP come file system di lettura / scrittura . Il motivo principale:

Wikipedia dice :

Né l'MTP né gli standard PTP consentono la modifica diretta degli oggetti. Invece, gli oggetti modificati devono essere ricaricati nella loro interezza, il che può richiedere molto tempo per oggetti di grandi dimensioni. Con PTP / MTP, la dimensione del file deve essere nota nella fase di apertura.

Il tuo comune programma di copia di file apre solo un file sorgente e un file di destinazione e copia i dati in blocchi dal file di origine alla destinazione. Questo non funzionerà con MTP, poiché è necessario utilizzare le funzioni speciali MTP e le primitive del filesystem generico (lettura, ricerca, scrittura) non sono disponibili.

Ci sono anche altre limitazioni. Ad esempio, il numero di file che possono essere letti o scritti contemporaneamente su un dispositivo MTP è fortemente limitato. Il dispositivo semplicemente non si comporta come un filesystem.

Suppongo che il driver del file system di sola lettura per un dispositivo MTP possa essere possibile, ma a causa dei problemi descritti sopra, sarà di scarsa utilità, quindi nessuno si è preoccupato di crearlo.


3
Il driver del file system di sola lettura sembra esistere ora: ptpdrive.com
Arne de Bruijn

4
In realtà, non è "impossibile". Se consideri che ho gphotofs e mtpfs come filesystem FUSE su Linux che SONO COMPLETAMENTE Lettura / Scrittura - è del tutto possibile realizzare questo come una "lettera di unità" sotto Windows ... non l'hanno reso disponibile o facile.
Svartalf,

3

Esiste un programma proprietario (ma comunque gradevole): MTP Drive ( http://www.mtpdrive.com/index.html ) che consente di "montare" i dispositivi MTP come unità in Windows. Con alcune ragionevoli limitazioni, fa un ottimo lavoro!


1. L'unità MTP sintetica può essere inviata a strumenti di recupero dati di un'unità comune come EASEUS / Recuva / R-Studio e i dati possono essere recuperati in modo efficace? 2. Posso utilizzare robocopy / altri strumenti di trasferimento rapido dei dati per trasferire i dati da quell'unità alle unità native di Windows (C / D, ecc.) In modo efficiente?
SIslam,

1

Potresti riuscire a mettere insieme qualcosa insieme al MTPMon del kit di porting MTP.

In alternativa, PowerShell può creare oggetti COM e chiamare i loro metodi, quindi potresti essere in grado di utilizzare le API utilizzate da Esplora risorse (ad esempio GetDeviceInfo () e GetObjectInfo ()).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.