获取磁盘容量关键函数:
void
DiskSend::GetDiskSpace(QString strDisk, double& dTotalBytes,
double& dFreeBytes)
{
LPCWSTR lpcwstrDriver =
(LPCWSTR)strDisk.utf16();
ULARGE_INTEGER lFreeBytesAvailable,
lTotalBytesTemp, lTotalFreeBytes;
if (!GetDiskFreeSpaceEx(lpcwstrDriver,
&lFreeBytesAvailable,
&lTotalBytesTemp,
&lTotalFreeBytes))
{
QMessageBox::warning(0,
"Warning", "Acquire Disk Space Failed !");
dTotalBytes = -1;
dFreeBytes = -1;
return;
}
//unit : GB
dTotalBytes = lTotalBytesTemp.QuadPart /
1024.0 / 1024 / 1024;
dFreeBytes = lTotalFreeBytes.QuadPart /
1024.0 / 1024 / 1024;
//总计:xxGB
ui.totalLabel->setText(QString::number(dTotalBytes,
'f', 3));
//剩余可用:xxGB
ui.freeLabel->setText(QString::number(dFreeBytes,
'f', 3));
}
一、磁盘容量检测
该模块细分三个子模块
(1&