我正在开发一个Windows桌面应用程序。其中一项功能使得必须访问连接到计算机的手机上的文件夹。但是当我使用FolderBrowsreDialog在手机上选择文件夹时,它显示此错误。 “无法使用文件夹xxxx。请选择其他文件夹。”
我的操作系统是Windows 8,我的手机操作系统是android 4.4。我想知道为什么我收到此消息以及使用C#访问手机上文件夹的正确方法是什么。
答案 0 :(得分:4)
手机是否使用UMS或MTP协议连接到PC?
UMS是USB Mass Storage,是许多USB存储设备使用的通信协议,如外置硬盘,闪存驱动器,以及一些手机,MP3播放器和相机。它有效地将设备的存储暴露为标准存储设备,该设备具有驱动器号(在Windows上)并且几乎完全像本地存储设备。
MTP或Media Transfer Protocol是一种更有限的协议,主要由某些手机,相机和MP3播放器/媒体设备支持。它允许访问外部存储设备上更受限制的数据子集,并在Windows中作为特殊设备公开,而不是作为驱动器号。当设备只有一个存储设备(没有外部SD卡),部分存储设备为系统保留,部分可用作用户应用程序的虚拟SD卡时,通常会出现这种情况。
MTP设备不是标准文件系统,因此许多设计用于它们的系统(例如FolderBrowserDialog)将失败。右键单击文件夹或文件时,您可以看到许多shell扩展也丢失了。这是因为它们也依赖于MTP不可用的标准文件系统API。
您可以通过查看“我的电脑”浏览器窗口中的图标来判断您的手机是否已连接为UMS或MTP - 如果它有电话图标,则可能是MTP。如果它显示为带有驱动器号的外部驱动器,则可能是UMS。手机本身通常也会这么说 - 我的Nexus 5(Android 4.4)在通知栏中显示“连接为媒体设备”。