【问题标题】:C++ Qt - Get Physical Disk Size (Win32)C++ Qt - 获取物理磁盘大小 (Win32)
【发布时间】:2013-02-25 09:32:04
【问题描述】:

如何在 Windows 上使用 C++/Qt 框架获取当前计算机上所有硬盘的物理大小?需要说明的是,如果我有 640 GB 硬盘,我希望应用程序显示 640 GB,而不是 596 GB 的可用空间。

我知道 Qt 可能没有我可以使用的功能,因为它必须是特定于平台的,所以我猜在这种情况下来自 Win32 API。不幸的是,我不能使用 GetDiskFreeSpaceEx(),因为我只能获得空闲/可用的磁盘空间。我已经阅读了有关使用 WMI 的信息,但似乎找不到任何可用的代码示例。

【问题讨论】:

    标签: c++ qt winapi hard-drive


    【解决方案1】:

    我认为这个问题主要是由于操作系统和硬盘制造商使用的测量值不一致造成的。检查this wikipedia page 了解更多信息。也许找到一种方法来进行数学运算,同时将 1 千字节视为 1000 字节(而不是 1024),将 1 兆字节视为 1000 * 1000 等等 - 而不是将 1 千字节视为 1024 字节等。

    【讨论】:

    • 我好像没听懂你想说什么。这如何帮助我想出一个可以用来获取物理磁盘大小的函数?请记住,我是 C++ 编程的初学者,我相信一定已经为此目的做了一些东西。
    • 忘记我的最后评论,您实际上给了我如何根据用户可用空间计算声明的 HDD 容量的想法。我使用 GetDiskFreeSpaceEx() 来获取 totalNumberOfBytes,然后用 (totalNumberOfBytes * 1073741824) / 1000000000 简单地计算以 GB 为单位的 hddPhysicalSize。
    • @Marko 正是我想说的 :) 我很高兴它对你有用。
    猜你喜欢
    • 1970-01-01
    • 2013-02-09
    • 2013-04-03
    • 2012-01-25
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    相关资源
    最近更新 更多