从安卓端传输图片,CSV,TXT等文件到电脑端时就会经常出现无法显示问题(这里是指通过数据线连接手机和电脑,电脑上就无法显示出这些文件。或者,文件内容老是没刷新),特别是刚刚下载到手机上的文件、刚刚拍的照片等。网上查找原因,记录如下:

现象:

1、将一台Android设备连接到PC,以MTP设备的方式进行读取时,显示文件不全。
2、使用一些市面上比较流行的文件管理器,甚至是厂商自带的文件管理器,进行创建文件、文件夹,复制,粘贴,删除等操作时,可显示出目录下所有文件。
3、重启Android设备,可显示出目录下所有文件。

原因分析:

  由于现在很多手机因为容量足够,不再外插SD卡,获取的外部存储路径(emulated)就是在手机根目录下,而手机对于外部存储的文件有一个扫描机制。直接写入文件到手机外部存储时,由于系统未重新扫描外部存储,所以在电脑上显示不了文件。而重命名文件和重启手机的方式可以触发扫描机制,所以这两个操作之后就可以在电脑上看到该文件。

专业解释:

1、MTP设备连接电脑的时候,PC读取的并不是MTP设备的磁盘文件数据。而是通过MTP服务进行映射出来。
2、该映射的数据源时Android的Provider中的一个media数据库:com.android.provider.media/databases/external.db
3、该数据库中有一个files表,在这个表中,所有记录都将会被MTP服务进行映射到PC的文件管理器上,同时我们在PC上做的修改,也首先对服务器中的files表进行修改,随后才会触发系统的磁盘操作。由此可知,如果files表中没有的数据,则无法在MTP中得到呈现

解决办法

1、将需要传输的文件移动到新位置(手机端操作)。
2、安卓端通过文件管理器刷新文件。同时,电脑端也需要刷新。

注意事项

  由于存在以上问题,所以在传输文件,特别是剪切操作时,务必确定传输完成后再删除文件,以免造成数据丢失。毕竟数据无价!

参考文档

  1. Android设备MTP方式连接PC增删文件无法实时更新的问题
  2. Android写入文件电脑上看不到的原因

本文标签:原创笔记