开发环境qt,调用windows API,获取磁盘总空间和剩余空间,直接上代码
//求磁盘剩余空间
quint64 getDiskFreeSpace(QString driver)
{
QString strDiver;
LPCWSTR lpcwstrDriver=(LPCWSTR)driver.utf16();
ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes;
if( !GetDiskFreeSpaceEx( lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTotalFreeBytes) )
{
qDebug() << "ERROR: Call to GetDiskFreeSpaceEx() failed.";
return 0;
}
//磁盘总空间
qDebug() << "liTotalBytes=" << liTotalBytes.QuadPart/1024/1024/1024 << "G";
//磁盘剩余空间
qDebug() << "liTotalFreeBytes=" << liTotalFreeBytes.QuadPart/1024/1024/1024 << "G";
return (quint64) liTotalFreeBytes.QuadPart/1024/1024/1024;
}
调用代码:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
// w.show();
quint64 freeSpace =getDiskFreeSpace(QString("D:/"));
qDebug() << "剩余空间 " << freeSpace<<"GB";//输出磁盘剩余空间大小
// clearTempFiles("E:/testTemp/qftp");
return a.exec();
}