0

通过以下链接,我可以获得硬盘空间。

获取硬盘空间

但是,如果我连接辅助硬盘,它不会显示它的详细信息。

如何循环硬盘数量并检索它们的空间?

我想把它放在一个循环领域。获取硬盘数量并循环访问 harddisk1 中的驱动器,然后循环访问 harddisk2 中的驱动器。

4

2 回答 2

1

使用 Windows API 的GetLogicalDriveStrings功能。

std::vector< std::basic_string<TCHAR> > drives;

TCHAR szBuffer[1024];
::GetLogicalDriveStrings(1024, szBuffer);
TCHAR *pCurrentDrive = szBuffer;
while (*pCurrentDrive)
{
   drives.push_back( pCurrentDrive );
   pCurrentDrive = &pCurrentDrive[_tcslen(pCurrentDrive) + 1];
}

然后调用向量GetDiskFreeSpaceEx中的每个元素。drives

您也可以改用该GetLogicalDrives函数,它将驱动器作为位掩码返回。但是,我认为GetLogicalDriveStrings在这种情况下更简单,因为它将驱动器作为可以GetDiskFreeSpaceEx直接传递的字符串返回。

于 2013-02-11T13:24:34.373 回答
0

怎么样:

for (char drive = 'a'; drive <= 'z'; drive++)
{
    // Get for amount for `drive`
}

对于那些想知道的人......是的,这是非常幼稚的并且可能很耗时。

于 2013-02-11T13:21:01.787 回答