我做的winform通过USB读取手机指定文件,向手机指定文件夹中写文件。但是扫描不到手机盘符和盘符下的文件,通过文件选择控件选到的手机文件路径也都是电脑的临时文件路径。求高手解答
3条回答 默认 最新
- 红帽01 2018-03-17 09:23关注
WPD( Windows Portable Devices)
译作Windows 便携设备 (WPD) 是一种驱动程序技术,可支持广泛的可移动设备,比如移动电话、数码相机和便携媒体播放器。WPD 提供了标准化的基础结构,以实现应用程序和连接到正在运行 Windows 的 PC 上的便携设备之间的数据传输。WPD 还可为应用程序提供设备及其内容的统一视图以及标准化机制,从而获得访问数据的权限并对数据进行传输。
MTP(Media Transfer Protocol)模式
MTP模式是微软制订的一套媒体传输协议,由微软公司制定的在设备之间进行多媒体文件交换的通信协议,它实现的是把简单的文件复制变成一种协议性的传输方式。MTP既可以实现在USB协议上,也可以实现在TCP/IP协议上,它属于上层的应用协议,而不关心底层传输协议。目前大部分设备的应用都是基于USB协议。
PortableDeviceApiLib
这是微软提供的一个COM类库可以用于获取WPD设备的信息和进行MTP模式的文件传输
https://www.cnblogs.com/datacool/p/datacool_2017_WPD.html
http://blog.csdn.net/yu0zhuo/article/details/5728605/
我只试了下面的方法,其它的自己也没试。自己看看例子多试试。
例子中的PortableDeviceManagerClass 改为PortableDeviceManager,不知道是否为版本问题。
public string EnumerateDevices() { PortableDeviceApiLib.PortableDeviceManager devMgr = new PortableDeviceManager(); uint cDevices = 1; devMgr.GetDevices(null, ref cDevices); if (cDevices > 0) { string deviceIDs = ""; devMgr.GetDevices(ref deviceIDs, ref cDevices); return deviceIDs; } return null; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用