检查磁盘是否插入保留的分区

时间:2015-04-17 14:32:45

标签: c++ winapi

我使用GetDriveTypeA("D:\\")检查"保存的D"是否存在驱动器,但它总是存在,即使没有插入磁盘。为什么?当未插入磁盘时,它甚至在磁盘管理中不可见。

1 个答案:

答案 0 :(得分:1)

仅仅因为未插入可移动磁盘并不意味着驱动器本身或其分配的驱动器号不存在。 Windows系统UI可能会隐藏带有弹出媒体的驱动器(用户将在没有媒体的驱动器上执行什么管理?),但如果需要,代码仍然可以与这些驱动器进行交互。这就是GetDriveType()如果D:已分配给驱动器,则不会失败的原因。

如果确实需要检查是否插入了磁盘,请执行需要磁盘的操作(例如查询磁盘空间或磁盘卷信息),或者放到MMC层并使用DeviceIoControl()询问如果驱动器是否插入了磁盘,则直接驱动(如果需要,还有什么类型的磁盘)。