[转]Qt中获得指定磁盘的空间大小

来源:互联网 发布:淘宝账户已被冻结 编辑:程序博客网 时间:2024/05/20 19:31

最近在用Qt写一个文件管理器,想获取磁盘的总空间大小以及剩余空间大小等等信息。

在网上找到一个不错的解决方法。

本文转自remote_roamer的博客:http://blog.csdn.net/remote_roamer/article/details/6709734

如有版权问题,请联系我,我会删除。

定义头文件disktools.h

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


原创粉丝点击