在本地计算机上获取可用的物理驱

时间:2012-10-23 08:07:14

标签: c++ c winapi

我正在尝试在本地计算机上获取所有物理驱动器。 我尝试使用GetLogicalDrives(),但是当我使用此功能时,它还会让我获得机器上不可用的驱动器,例如软盘驱动器A. 这是我的代码:

void FindDrives()
{
    DWORD drives = GetLogicalDrives();
     for (int i=0; i<26; i++)
     {
        if( ( drives & ( 1 << i ) ) )
        {
           wchar_t driveName[] = { L'A' + i, L':', L'\\', L'\0'};
           std::wcout << driveName << std::endl;
        }
     }
}

如何才能获得物理上可用的驱动器?

1 个答案:

答案 0 :(得分:2)

尝试使用wmic

wmic diskdrive list

获取更少信息

wmic diskdrive list brief 

或者在c中使用GetLogicalDrives()首先获取系统中映射的所有驱动器,然后使用GetDriveType()找出每个驱动器的类型。然后根据需要对其进行排序。