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

标签 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;
        }
     }
}

我怎样才能只获得实际可用的驱动器?

最佳答案

尝试使用 wmic

wmic diskdrive list

信息较少

wmic diskdrive list brief 

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

关于c++ - 在本地机器上获取可用的物理驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025994/

相关文章:

c++ - 删除 vector 的尾部(通过删除)内存效率高吗?

c++ - 如何从视频中提取帧(使用 DirectShow)?

c - 批量处理

c - 针对 x86 架构使用 gcc 编译器的双堆栈对齐问题

c++ - 将可执行文件添加到注册表以便在启动时运行

c++ - 为什么我的数组代码反转不能正常工作

c++ - C++ 中的 pthread_create 错误(类内的 pthread)

C 程序要求两个单独的文件,然后显示字符数、行数和单词数

c - 如何使用 DispCallFunc 在纯 C 中调用 IStream::SetSize(0)

c++ - 如何在运行时设置 (Win32 API) Picture Control 的图像?