【问题标题】:Get the space of Secondary hard disk - c++获取辅助硬盘空间 - c++
【发布时间】:2013-01-26 14:11:24
【问题描述】:

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

Get Hard Disk Space

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

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

我想把它放在一个循环扇区中。获取硬盘数量并循环查找 harddisk1 中的驱动器,然后循环查找 harddisk2 中的驱动器。

【问题讨论】:

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


【解决方案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];
}

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

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

【讨论】:

  • 谢谢。但我想把它放在一个循环领域。获取硬盘数量并循环访问 harddisk1 中的驱动器,然后循环访问 harddisk1 中的驱动器
【解决方案2】:

怎么样:

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

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

【讨论】:

  • 您可以使用 GetLogicalDrives 获取可用驱动器的位掩码。
  • 这可能会导致您的旧软驱开始研磨。
猜你喜欢
  • 2011-06-21
  • 2013-12-13
  • 2016-08-04
  • 2015-10-25
  • 2023-03-17
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多