Enumerating all available drive letters in Windows

前端 未结 7 2401
忘掉有多难
忘掉有多难 2020-11-29 09:15

I want to enumerate all available drive letters (which aren\'t already taken) in Windows using VC++.

How can I do this?

7条回答
  •  一生所求
    2020-11-29 09:49

    ::GetLogicalDrives() returns a list of available (read: used) drives as bits in a mask. This should include mapped network drives. Thus, you can simply walk the bits to find bits that are zero, meaning no drive is present. If in doubt, you can always call ::GetDriveType() with the drive letter + ":\" (":\\" in C code, or _T(":\\") in Unicode-aware terminology, of course), and that should return DRIVE_UNKNOWN or DRIVE_NO_ROOT_DIR if the drive is available.

提交回复
热议问题