С помощью ссылки ниже я могу получить место на жестком диске.
Получить место на жестком диске
Но если я подключу дополнительный жесткий диск, он не будет отображать подробности.
Как я могу зациклить количество жестких дисков и получить их места?
Я хотел бы получить это в секторе петли. Получить счетчик жесткого диска и цикл для дисков в harddisk1, а затем цикл для дисков в harddisk2, как это.
Используйте 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
непосредственно.
Как насчет:
for (char drive = 'a'; drive <= 'z'; drive++)
{
// Get for amount for `drive`
}
А для тех, кому интересно … Да, это очень наивно и, вероятно, отнимает много времени.