在本地机器上获取可用的物理驱动器

Get available physical drives on local machine

本文关键字:驱动器 获取 机器      更新时间:2023-10-16

我正在尝试获取本地计算机上的所有物理驱动器。我尝试使用GetLogicalDrives(),但是当我使用此功能时,它还可以使我驱动器在机器上没有物理上可用的驱动器,例如Floppy DriveA。这是我的代码:

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''};
           std::wcout << driveName << std::endl;
        }
     }
}

我如何仅获得物理上可用的驱动器?

尝试使用wmic

wmic diskdrive list

较少信息

wmic diskdrive list brief 

在C中使用getLogicalDrives()首先使用getLogicalDrives(),以获取系统中的所有驱动器,然后getDriveType()找出每种驱动器是哪种驱动器。然后按照您想要的。