【发布时间】:2015-11-12 08:31:25
【问题描述】:
我的程序需要在所有本地驱动器中找出 SD 卡。可以轻松识别可移动驱动器(使用 GetLogicalDrivesStrings() 和 GetDriveType() ),但要知道哪些是真正的 SD 卡似乎更难。
有很多问题(包括here、here、here 和here)但没有完整的答案(很多集中在 USB 上)。有人说无法区分 SD 卡和 USB,但是 Windows 资源管理器显示 SD 卡的不同驱动器图标(至少在 Windows 7 中),因此它可以区分哪个是哪个。
不基于 WMI 的代码的额外奖励,因为我的程序仍在使用本机 Win32/MFC!一些DeviceIoControl() 属性可以提供帮助吗?现在,如果有人有 C#/.NET 解决方案,我仍然很乐意阅读它!
【问题讨论】:
-
轻松作弊;因为 shell 知道类型,所以问 shell。使用
SHGetFileInfo获取驱动器的图标索引。 -
哈哈!您已获得金徽章又脏又有趣,甚至可能有效的解决方案。让我检查一下所有版本的 Windows 上的图标索引!我可能最终会使用你的解决方案,这表明我是多么绝望:-D
标签: c# windows winapi mfc sd-card