【Windows系統】C++方式獲取特定硬盤的使用詳情

通過Windows API可以獲取磁盤總容量空閒容量可用空閒容量

代碼如下:

#include <windows.h>

// 硬盤詳情結構體
struct DriveInfo
{
    QString sDriName;    //盤名
    quint64 uiTotal;     //總容量
    quint64 uiFree;      //空閒容量
    quint64 uiFree2Caller;    //可用的空閒容量

    DriveInfo()
    {
        sDriName = "";
        uiTotal = 0;
        uiFree = 0;
        uiFree2Caller = 0;
    }
};

//獲取特定硬盤的使用信息
//driveName: 盤名,例如:"C:\\"
DriveInfo get_drive_usage(QString& driveName)
{
    DriveInfo dinfo;
    BOOL ret = GetDiskFreeSpaceEx(LPCWSTR(driveName.toStdWString().c_str()), (PULARGE_INTEGER)&dinfo.uiFree2Caller, (PULARGE_INTEGER)&dinfo.uiTotal, (PULARGE_INTEGER)&dinfo.uiFree);

    return dinfo;
}

如果要計算磁盤的使用率,可參考下面的公式:

磁盤使用率 = 1 - (空閒容量 / 總容量)

 如果要計算磁盤的可用率,可參考下面的公式:

磁盤可用率 = 1 - (可用磁盤容量 / 總容量)

 注:不是所有的空閒容量都可用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章