循环通过所有驱动器?

时间:2011-02-17 09:40:27

标签: c++ windows device

好吧,我一直在研究硬盘信息(How can I determine the type of a particular drive?而且,一切正常。但我不知道如何“检查”或“循环”虽然所有驱动器(硬盘,USB) ,CD / DVD /蓝光,存储卡等)我如何循环它们?因为我不想为每个字母做GetDeviceType。

3 个答案:

答案 0 :(得分:2)

查看FindFirstVolumeFindNextVolumeFindVolumeClose。以下是MSDN的完整示例:Displaying Volume Paths

答案 1 :(得分:1)

好吧,你可以调用GetLogicalDrives(),这会给你一个使用/未使用的驱动器的位掩码:

  

返回值

     

如果函数成功,则返回值是表示当前可用磁盘驱动器的位掩码。位位置0(最低有效位)是驱动器A,位位置1是驱动器B,位位置2是驱动器C,依此类推。

因此,如果位0的值为0,则不使用驱动器A,如果值为1,则使用它。对于其他驱动器号也是如此。

但是,要获取有关特定驱动器的驱动器信息,GetDeviceType()是正确的工具 - 是否有任何限制阻止您使用它?

GetLogicalDrives()
loop through result:
   what is the bit value for the current drive?
    - 0: drive not used, continue
    - 1: drive in use, check what type it is, using GetDeviceType()

答案 2 :(得分:1)

您也可以使用GetLogicalDriveStrings