我想用c ++和WMI计算整个硬盘的可用空间。
例如。 如果HDD包含3个逻辑驱动器,则说C:,D:,E: 并且每个逻辑驱动器都具有以下配置。
驱动总空间可用空间
C:10GB 5 GB D:20GB 8 GB E:15GB 7 GB
所以我需要获取免费的硬盘空间,即所有驱动器C,D和E的可用空间。
所以它应该返回5 + 8 + 7 = 20 GB。
此外,我不知道该硬盘驱动器的所有逻辑驱动器是什么。
答案 0 :(得分:0)
非WMI更容易。
您可以使用GetLogicalDriveStrings
(https://msdn.microsoft.com/en-us/library/windows/desktop/aa364975(v=vs.85).aspx)获取系统中的所有驱动器。
接下来使用GetDiskFreeSpace
(https://msdn.microsoft.com/en-us/library/windows/desktop/aa364935(v=vs.85).aspx)查找特定驱动器的可用空间。
如果您真的想(必须)坚持WMI,页面https://msdn.microsoft.com/en-us/library/windows/desktop/aa393244(v=vs.85).aspx将提供有关如何实例化WMI类的一些指示,您将需要使用Win32_LogicalDisk
({{ 3}})具有FreeSpace
成员的类。