我正在开发Windows桌面应用程序。其功能之一是必须访问连接到计算机的电话上的文件夹。但是,当我使用FolderBrowsreDialog在手机上选择文件夹时,它会显示此错误。“无法使用文件夹xxxx。请选择另一个文件夹。”
我的操作系统是Windows 8,手机操作系统是android 4.4。我想知道为什么会收到此消息,以及使用C#访问手机上文件夹的正确方法是什么。
手机是否使用UMS或MTP协议连接到PC?
UMS是USB大容量存储,是许多USB存储设备(例如外部硬盘驱动器,闪存驱动器以及某些电话,MP3播放器和照相机)使用的通信协议。它有效地将设备的存储公开为标准存储设备,该设备已获得驱动器号(在Windows上),并且几乎完全像本地存储设备一样工作。
MTP或媒体传输协议是一种受限制更大的协议,大多数电话,相机和MP3播放器/媒体设备都支持MTP 。它允许访问外部存储设备上更受限制的数据子集,并且在Windows中作为特殊设备公开,而不作为驱动器号公开。当设备仅具有一个存储设备(没有外部SD卡)时,通常是这种情况,其中一部分是为系统保留的,另一部分则可以用作用户应用程序的虚拟SD卡。
MTP设备不是标准的文件系统,因此许多旨在与它们一起使用的系统(例如FolderBrowserDialog)将失败。右键单击文件夹或文件时,您会看到许多外壳扩展名也丢失了。这是因为它们也依赖于MTP不可用的标准文件系统API。
您可以通过在“我的电脑”浏览器窗口中查看其电话图标,以了解您的电话是以UMS还是MTP进行连接-如果它具有电话图标,则可能是MTP。如果它显示为带有驱动器号的外部驱动器,则可能是UMS。手机本身通常也会说出来-我的Nexus 5(带有Android 4.4)在通知栏中说“已连接为媒体设备”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句