C#的winform怎么样才能扫描访问到通过USB连接到电脑的手机文件路径

我做的winform通过USB读取手机指定文件,向手机指定文件夹中写文件。但是扫描不到手机盘符和盘符下的文件,通过文件选择控件选到的手机文件路径也都是电脑的临时文件路径。求高手解答

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;
    }

getdrivers获取所有的盘符,判断type是不是removeable的,然后再getfiles

android 常用adb 和 adb shell 命令 获取root权限。参考:http://blog.csdn.net/u013512708/article/details/46757997