Как я могу получить физический размер всех жестких дисков на текущем компьютере, используя C ++ / Qt framework в Windows? Просто для ясности, если у меня есть жесткий диск 640 ГБ, я хочу, чтобы приложение показывало 640 ГБ, а не 596 ГБ свободного места.
Я знаю, что Qt, вероятно, не имеет функции, которую я мог бы использовать, потому что она должна зависеть от платформы, поэтому в этом случае я предполагаю что-то из Win32 API. К сожалению, я не могу использовать GetDiskFreeSpaceEx (), потому что я получу только свободное / доступное дисковое пространство. Я читал об использовании WMI, но я не могу найти какие-либо полезные примеры кода для этой цели.
Я думаю, что эта проблема является в основном косметической из-за несоответствий в измерениях, используемых производителями операционных систем и жестких дисков. Проверьте эта страница википедии для дополнительной информации. Возможно, найдите способ сделать математику, рассматривая 1 килобайт как 1000 байтов (вместо 1024), 1 мегабайт как 1000 * 1000 и т. Д. Вместо 1 килобайта как 1024 байта и т. Д.
Других решений пока нет …