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

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

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

[cpp]  view plain copy
  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 plain copy
    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";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值