使用vc++2010从usb读取文件/文件夹
read files/folders from usb using vc++2010
我想使用Visual studio 2010从windows7中的USB大容量存储中读取/写入文件/文件夹。
使用WM_DEVICECHANGE可以检测USB设备的连接/移除。但现在我不知道如何从USB(Pendrive(读取文件和文件夹。
我不想为此安装任何软件包。通过使用windows类让我知道我是否可以工作。
请在这方面帮助我。
提前谢谢。
使用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++(。
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 = @"SYSTEMCurrentControlSetEnum" + 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驱动器。
相关文章:
- 如何将更多文件夹添加到c++include路径
- 从对象文件(.o)在macos上制作归档文件(.a文件)
- 有没有办法读取C++中的文件文件夹?
- 错误C1083:无法打开包含文件.文件正确包含在代码中
- NDK 无法看到头文件 .h 文件
- 文件文件夹关联或归属
- 如何以阻止的方式删除文件/文件夹
- 在MFC中序列化为Unicode文本文件-文件头错误
- (Qt C++)如何从QTableView将所选文件/文件夹打印到文本文件中
- 获取带有POCO的服务可执行文件文件夹
- 如何从文件文件夹创建自定义文件类型
- 如何在windows7有限内存的电脑上读取大文件?文件大小为25GB,但RAM容量只有16GB
- c++以二进制方式读取文件.文件结束的问题
- 如何在linux的makefile中使用头文件(.h)文件中定义的宏定义
- 如何从文件夹中读取文件?文件夹包含不同类型的文件名
- 如何查找指向文件/文件夹的所有硬链接和符号链接(Windows和UNIX)
- 生成临时文件/文件夹 c++ GTEST
- 更改应用程序文件(. c文件)的名称
- 使用vc++2010从usb读取文件/文件夹
- 为特定的文件/文件夹禁用-Wall标志