c++ .cpp --> 获取磁盘总大小

float WindowsInfo::GetDiskTotal()   //单位:G
{
        all_Total = 0;                 //函数外自定义
        all_Free = 0;
        DWORD dwSize = MAX_PATH;
       TCHAR szLogicalDrives[MAX_PATH] = { 0 };


       DWORD dwResult = GetLogicalDriveStrings(dwSize,szLogicalDrives);


        if (dwResult > 0 && dwResult <= MAX_PATH) 
       {
               TCHAR* szSingleDrive = szLogicalDrives; 

                while(*szSingleDrive) 
               {
                        uint64_t available, total, free;
                       if(GetDiskFreeSpaceEx(szSingleDrive,(ULARGE_INTEGER*)&available,(ULARGE_INTEGER*)&total,(ULARGE_INTEGER*)&free))
                      {
                               uint64_t Total, Available, Free;
                               Total = total>>20;
                               Available = available>>20;
                               Free = free>>20;

                              all_Total += Total;   //总
                             all_Free += Free;   //剩余
                       }

                       // 获取下一个驱动器号起始地址
                      szSingleDrive += _tcslen(szSingleDrive) + 1;
               }
      }

     return all_Total/1024;
}

猜你喜欢

转载自blog.csdn.net/qq_22521211/article/details/78580410