qt中获得指定磁盘的空间大小

来源:互联网 发布:sql select null as 编辑:程序博客网 时间:2024/06/11 10:18

qt中获得指定磁盘的空间大小

分类: QT 编程 1062人阅读 评论(0) 收藏 举报
qt磁盘integerc
  • 定义头文件disktools.h

[cpp] view plaincopy
  1. #ifndef DISKTOOLS_H  
  2. #define DISKTOOLS_H  
  3.   
  4.   
  5. #include "QDebug"  
  6. #include <windows.h>  
  7.   
  8.   
  9.   
  10.   
  11. class DiskTools  
  12. {  
  13. public:  
  14.     DiskTools();  
  15.     quint64 getDiskFreeSpace(QString driver);  
  16. };  
  17.   
  18. #endif // DISKTOOLS_H  

  • disktools.cpp
    [cpp] view plaincopy
    1. #include "disktools.h"  
    2.   
    3. DiskTools::DiskTools()  
    4. {  
    5. }  
    6.   
    7. quint64 DiskTools::getDiskFreeSpace(QString driver){  
    8.   
    9.     LPCWSTR lpcwstrDriver=(LPCWSTR)driver.utf16();  
    10.   
    11.     ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes;  
    12.   
    13.     if( !GetDiskFreeSpaceEx( lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTotalFreeBytes) )  
    14.     {  
    15.         qDebug() << "ERROR: Call to GetDiskFreeSpaceEx() failed.";  
    16.         return 0;  
    17.     }  
    18.     return (quint64) liTotalFreeBytes.QuadPart/1024/1024/1024;  
    19.   
    20. }  
  • 主程序中调用的代码
//获得盘符信息
    driversList = QDir::drives();
    qDebug()<<driversList.at(0).absoluteDir().absolutePath();
    quint64 freeSpace = DiskTools::DiskTools().getDiskFreeSpace(QString("C:/"));
    qDebug() << "剩余空间 " << freeSpace<< "GB";
0 0
原创粉丝点击