获取辅助硬盘的空间 - c ++

时间:2013-02-11 13:14:44

标签: c++ winapi visual-c++ hard-drive

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

Get Hard Disk Space

但是如果我连接了一个辅助硬盘,它就不会显示它的细节。

如何循环硬盘数量并检索其空间?

我想在循环扇区中得到它。获取harddisk1中的驱动器的硬盘数量和循环,然后在harddisk2中循环驱动器。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

怎么样:

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

对于那些想知道的人......是的,这很天真,可能很耗时。