#ifndef DISKTOOLS_H
#define DISKTOOLS_H
#include "QDebug"
#include <windows.h>
class DiskTools
{
public:
DiskTools();
quint64 getDiskFreeSpace(QString driver);
};
#endif // DISKTOOLS_H
- disktools.cpp
#include "disktools.h"
DiskTools::DiskTools()
{
}
quint64 DiskTools::getDiskFreeSpace(QString driver){
LPCWSTR lpcwstrDriver=(LPCWSTR)driver.utf16();
ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes;
if( !GetDiskFreeSpaceEx( lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTotalFreeBytes) )
{
qDebug() << "ERROR: Call to GetDiskFreeSpaceEx() failed.";
return 0;
}
return (quint64) liTotalFreeBytes.QuadPart/1024/1024/1024;
}
- 主程序中调用的代码
//获得盘符信息
driversList = QDir::drives();
qDebug()<<driversList.at(0).absoluteDir().absolutePath();
quint64 freeSpace = DiskTools::DiskTools().getDiskFreeSpace(QString("C:/"));
qDebug() << "剩余空间 " << freeSpace<< "GB";