我有一个Android 4.3设备(三星 Galaxy SIII LTE 运行原装 ROM)连接到计算机使用中期计划(媒体传输协议)。
我想整理一些文件,所以我创建了子文件夹,并将文件子集移到这些子文件夹中。这些都在同一个分区内(安装在手机上的外部 SD 卡)。
其中一个动作涉及一个大文件,大小略大于2 GB在普通硬盘或U盘上,这一移动速度非常快,仅需几秒钟最多。文件数据本身不会被移动 - 仅将引用指针(文件元数据)从旧文件夹更改为新文件夹。
然而,使用 MTP,这一举动需要17分钟!(预计为 29 分钟。)看起来Windows 7的计算机将文件临时复制到本地硬盘,然后将文件重新复制到设备的新文件夹中。要么这样做,要么要求设备复制该文件复制到新文件夹然后删除原始文件。
这是一个普通的MTP 的行为有问题吗?还是我的计算机或它使用的协议版本有问题?
如果正常,为什么选择这种低效的在同一个分区内移动文件的方法?如果不正常,我该如何修复?
答案1
这是 MTP 的正常行为吗?
是的。看来 MTP 是一个相当裸露的骨头协议不是旨在支持直接修改对象 - 在我看来,这是一个相当荒谬的疏忽。根据维基百科:
MTP 和 PTP 标准不支持直接修改对象。必须将修改后的对象从设备中复制出来并重新上传,这对于大型对象来说可能需要很长时间。Google 在 Android 中的 MTP 实现包含处理此限制的扩展;但是,这些扩展必须由主机操作系统支持,并且默认情况下不可用。-维基百科
Android 为什么要改用 MTP?
Android 从磁盘存储安装方式转变为 MTP,以解决访问文件系统的问题,同时使其也可供计算机访问。似乎使用原始磁盘安装方式,您必须有单独的分区,这导致设备拥有巨大的用户存储空间,但仍然没有足够的空间容纳应用程序和应用程序存储空间(用户想知道为什么当仍有足够存储空间可用时)。使用 MTP,不再需要单独的分区,应用程序和用户都可以使用同一个分区 - 从而为系统和用户提供充足的存储空间。
但在永久改用 MTP 时,Android 已经从久经考验、功能丰富的文件系统访问方法(磁盘存储安装)倒退到了一种相当简陋、功能匮乏但相当新的方法(MTP)。此外,三星设备不使用 Google 的 MTP 实现,因此它们无法通过使用扩展来克服原始 MTP 实现的限制,例如这些。
可能的解决方法
移动大文件时,更好的选择似乎是使用文件管理器应用程序(例如ES文件浏览器) 在您的手机或平板电脑中,而不是尝试使用通过 MTP 连接到设备的计算机来移动它们。