如何在Windows的命令行上访问MTP设备?


68

大多数MTP(媒体传输协议)设备以其设备名称或GUID显示在Windows File Explorer中,但它们没有分配驱动器号。

如何从命令行访问此类设备上的文件?使用cmd.exe或PowerShell。


2
兼容Linux MTP的实现(例如gphoto2)可以脚本上载的事实表明,假设Windows Media Player不会以某种方式阻止任何其他软件访问USB MTP接口,则在Windows上应该可以实现此目的。也想知道这是否可能。
Mokubai

2
我放弃了尝试使用我的Android MTP设备找到解决方案的方法,并最终在设备上安装了WebDAV服务器。这可以安装网络驱动器,尽管速度缓慢。
Mark Booth

WebDAV ...呃...那很痛苦。它将足够体面地工作。让我感到惊讶的是,Windows似乎无法轻松地管理Linux的功能。那好吧。
斯瓦尔塔夫夫(Svartalf)2014年

@MarkBooth我尝试了WebDAV服务器,但似乎我传输的大多数文件都已损坏(超过90%)...
Michael

为Android去倒过来,调整所连接的设备中的其它的解决方案:123
弗雷德里克

Answers:


29

不幸的是,MTP公开的API与普通文件系统API完全不同。因此,不可能将MTP设备公开为读/写文件系统。主要原因:

维基百科

MTP和PTP标准都不允许直接修改对象。相反,必须完整地重新上传已修改的对象,这对于大型对象可能会花费很长时间。对于PTP / MTP,必须在打开阶段就知道文件大小。

您的通用文件复制程序仅打开源文件和目标文件,然后将数据块从源文件复制到目标文件。这不适用于MTP,因为您需要使用MTP特殊功能,并且通用文件系统原语(读取,查找,写入)不可用。

还有其他限制。例如,在MTP设备上可以同时读取或写入的文件数受到严重限制。该设备的行为根本不像文件系统。

我想MTP设备的只读文件系统驱动程序是可能的,但是由于上面概述的问题,它的用处很小,因此没有人愿意创建它。


3
只读文件系统驱动程序似乎现在存在:ptpdrive.com
Arne de Bruijn

4
实际上,这并非“不可能”。当您考虑将gphotofs和mtpfs作为Linux上的FUSE文件系统进行完全读/写时,很有可能在Windows下将其作为“驱动器盘符”来实现...它们只是没有使其可用还是容易。
斯瓦尔塔夫夫(Svartalf)2014年

3

有一个专有的(但仍然不错)程序:MTP驱动器(http://www.mtpdrive.com/index.html),该程序可让您将MTP设备“挂载”为Windows中的驱动器。在一些合理的限制下,它做得很好!


1.是否可以将合成MTP驱动器馈送到EASEUS / Recuva / R-Studio等通用驱动器数据恢复工具,并有效地恢复数据?2.我可以使用robocopy /其他快速数据传输工具将数据从该驱动器有效地传输到Windows本机驱动器(C / D等)吗?
SIslam

1

您可能可以与MTP移植套件的MTPMon一起拼凑一些东西。

另外,PowerShell可以创建COM对象并调用其方法,因此您可以使用Windows资源管理器正在使用的API(例如,GetDeviceInfo()和GetObjectInfo())。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.