Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取辅助硬盘的空间-c++;_C++_Winapi_Visual C++_Hard Drive - Fatal编程技术网

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

C++ 获取辅助硬盘的空间-c++;,c++,winapi,visual-c++,hard-drive,C++,Winapi,Visual C++,Hard Drive,通过下面的链接,我可以获得硬盘空间 但是如果我连接一个辅助硬盘,它就不会显示它的详细信息 如何循环硬盘数量并检索其空间 我想把它放在一个循环区。获取硬盘计数并循环硬盘1中的驱动器,然后循环硬盘2中的驱动器,就像这样。怎么样: for (char drive = 'a'; drive <= 'z'; drive++) { // Get for amount for `drive` } for(char-drive='a';drive使用Windows API的函数 std::ve

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

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

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

我想把它放在一个循环区。获取硬盘计数并循环硬盘1中的驱动器,然后循环硬盘2中的驱动器,就像这样。

怎么样:

for (char drive = 'a'; drive <= 'z'; drive++)
{
    // Get for amount for `drive`
}
for(char-drive='a';drive使用Windows API的函数

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];
}
std::vector驱动器;
TCHAR szBuffer[1024];
::GetLogicalDriveStrings(1024,szBuffer);
TCHAR*pccurrentdrive=szBuffer;
while(*pCurrentDrive)
{
驱动器。推回(pCurrentDrive);
pccurrentdrive=&pccurrentdrive[_tcslen(pccurrentdrive)+1];
}
然后为
驱动器
向量中的每个元素调用
GetDiskFreeSpaceEx


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

您可能应该将其标记为windows特定的,除非您正在寻找一种跨平台的方法?您可以使用GetLogicalDrives获取可用驱动器的位掩码。这可能会导致旧软盘驱动器开始研磨。谢谢。但我希望在循环扇区中获得该值。获取硬盘计数并循环硬盘1中的驱动器,然后循环硬盘1中的驱动器e那