私はC++とWMIを使ってハードドライブ全体の空き容量を計算したいと思います。C++でWMIを使用してハードディスクのすべての論理ドライブの空き領域を取得するにはどうすればよいですか?
たとえば、 HDDにC:、D:、E: という3つの論理ドライブがあり、各論理ドライブの構成が以下の場合。
ドライブ総容量フリースペース
C:10ギガバイト5ギガバイト D:20ギガバイト8ギガバイト E:15ギガバイト7ギガバイト
だから私は、すなわちすべてのドライブの空き領域をハードドライブ空き容量を取得する必要がありますC、DおよびE.
これは5 + 8 + 7 = 20 GBを返さなければなりません。
また、そのハードドライブにすべての論理ドライブが存在するかどうかわかりません。
GetDiskFreeSpaceEx windows APIに関するご意見はありますか?このAPIを使用して空きHDD容量を取得していますが、若干異なる値が表示されています。以下は私が使用しているコードです。 intメイン(無効) { LPCWSTR pszDrive = NULL; BOOLテスト、fResult; __int64 lpFreeBytesAvailable、lpTotalNumberOfBytes、lpTotalNumberOfFreeBytes; DWORD dwSectPerClust、dwBytesPerSect、dwFreeClusters、dwTotalClusters; テスト= GetDiskFreeSpaceEx( pszDrive、 (PULARGE_INTEGER)&lpFreeBytesAvailable、 (PULARGE_INTEGER)&lpTotalNumberOfBytes、 (PULARGE_INTEGER)&lpTotalNumberOfFreeBytes )。 return 0; } –