qq_38426724 2018-03-17 06:48 采纳率: 100%
浏览 2567
已采纳

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

我做的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;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条