- #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";