2013-03-10 54 views
0

如何在Windows上使用C++/Qt框架獲取當前計算機上所有硬盤的物理大小?要明確一點,如果我有640 GB硬盤,我希望應用程序顯示640 GB,而不是596 GB的可用空間。C++ Qt - 獲取物理磁盤大小(Win32)

我知道Qt可能沒有我可以使用的函數,因爲它必須是特定於平臺的,所以我猜在這種情況下是來自Win32 API的東西。不幸的是我不能使用GetDiskFreeSpaceEx(),因爲我只會得到空閒/可用的磁盤空間。我已閱讀關於使用WMI,但我似乎無法找到任何可用的代碼示例用於此目的。

回答

3

我認爲這個問題主要是由於操作系統和硬盤驅動器製造商使用的測量結果不一致造成的。請檢查this wikipedia page瞭解更多信息。也許找到一種方法來做數學,同時對待1千字節爲1000字節(而不是1024),1兆字節爲1000 * 1000等 - 而不是1千字節,如1024字節等。

+0

看來我沒有明白你想說什麼。這怎麼能幫助我想出一個我可以用來獲取物理磁盤大小的函數?請記住,我是C++編程的初學者,我相信爲此目的必須有一些東西。 – marko 2013-03-10 10:32:00

+0

忘掉我的最後一條評論,你實際上給了我一個想法,即如何從用戶可用的空間計算聲明的HDD容量。我用GetDiskFreeSpaceEx()獲取totalNumberOfBytes,然後簡單地用GB計算hddPhysicalSize(totalNumberOfBytes * 1073741824)/ 1000000000. – marko 2013-03-10 18:16:56

+0

@Marko正是我想說的:)我很高興它爲你工作。 – 2013-03-10 23:12:58