首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用vc++2010从usb读取文件/文件夹

使用vc++2010从usb读取文件/文件夹
EN

Stack Overflow用户
提问于 2014-03-19 04:07:24
回答 1查看 334关注 0票数 0

我想使用Visual studio 2010从windows7中的USB海量存储中读/写文件/文件夹。

使用WM_DEVICECHANGE能够检测到USB设备的连接/移除。但是现在我不知道如何从USB读取文件和文件夹。

我不想安装任何包来做这件事。通过使用windows类,让我知道我是否可以工作。

请在这方面帮助我。

提前谢谢。

EN

Stack Overflow用户

发布于 2014-03-20 13:57:43

向RegisterDeviceNotification注册窗口,并可以成功接收DEV_BROADCAST_DEVICEINTERFACE消息。在WM_DEVICECHANGE处理程序中,您必须获取dbcc_name。它将类似于\?\USB#VID_05AC&PID_1294&MI_00#0#{6bdd1fc6-810f-11d0-bec7-08002be2092f}

此id标识USB设备。

可以使用以下psuedo (代码是用C#编写的,但是可以很容易地移植到c++)。

代码语言:javascript
运行
复制
Private static string GetDeviceName(String DbccName)
{
    string[] Parts = DbccName.Split('#');
    if (Parts.Length >= 3)
    {
        string DevType = Parts[0].Substring(Parts[0].IndexOf(@"?\") + 2);
        string DeviceInstanceId = Parts[1];
        string DeviceUniqueID = Parts[2];
        string RegPath = @"SYSTEM\CurrentControlSet\Enum\" + DevType + "\\" + DeviceInstanceId + "\\" + DeviceUniqueID;
        RegistryKey key = Registry.LocalMachine.OpenSubKey(RegPath);
        if (key != null)
        {
            object result = key.GetValue("FriendlyName");
            if (result != null)
                return result.ToString();
            result = key.GetValue("DeviceDesc");
            if (result != null)
                return result.ToString();
        }
    }
    return String.Empty;
}

一旦你得到了友好的名字,你就可以使用windows API来读写文件到USB驱动器。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22489908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档