Qt实现获取文件大小与磁盘空间大小
更新时间:2023年11月01日 09:46:40 作者:恋恋西风
这篇文章主要为大家详细介绍了如何使用Qt实现获取文件大小与磁盘空间大小,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
1.通过QFile获取文件大小
注意:返回的是字节个数
QFile file("E:/59.raw"); if (file.open(QIODevice::ReadOnly)) { qDebug() << file.size();// byte } else { qDebug() << "文件打开失败!"; }
通过QFileInfo获取文件大小
QFileInfo info("E:/55.raw"); if (info.exists()) { qDebug() << info.size(); } else { qDebug() << "文件路径不存在!"; }
2. 获取磁盘空间
/** * @brief getDiskSpace 获取盘符的容量 * @param flag 为true则求磁盘总容量,为false则求磁盘剩余容量 * @return 返回容量,MB为单位 */ qint64 getDiskSpace(QString path, bool flag) { qint64 res = 0; QList<QStorageInfo> storageInfoList = QStorageInfo::mountedVolumes(); foreach (QStorageInfo storageInfo, storageInfoList) { if(path.startsWith(storageInfo.rootPath())){ if(flag){ res = storageInfo.bytesTotal()/1024/1024 ; }else{ res = storageInfo.bytesAvailable()/1024/1024 ; } break; } } return res; }
3 .获取选择路径下总文件大小
/** * @brief 获取路径下的文件大小:MB * @param filePath * @return */ qint64 getDirSizeMB(const QString filePath){ qint64 size = getDirSize(filePath); return size/MB; } /** * @brief 获取路径的文件大小:字节 * @param filePath * @return */ qint64 getDirSize(const QString filePath) { QDir tmpDir(filePath); qint64 size = 0; /*获取文件列表 统计文件大小*/ foreach(QFileInfo fileInfo, tmpDir.entryInfoList(QDir::Files)) { size += fileInfo.size(); } /*获取文件夹 并且过滤掉.和..文件夹 统计各个文件夹的文件大小 */ foreach(QString subDir, tmpDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { size += getDirSize(filePath + QDir::separator() + subDir); //递归进行 统计所有子目录 } return size; }
4. 转换大小单位
bit === byte
bit / 8
byte === KB
byte / 1024
KB = MB
KB / 1024
MB = GB
MB / 1024
GB === TB
GB / 1024
到此这篇关于Qt实现获取文件大小与磁盘空间大小的文章就介绍到这了,更多相关Qt获取文件与磁盘空间大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
c++连接mysql数据库的两种方法(ADO连接和mysql api连接)
现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到mysql数据库,C++连接mysql有2种方法:利用ADO连接、利用mysql自己的api函数进行连接,下面看看如何用吧2013-12-12C++项目基于HuffmanTree实现文件的压缩与解压缩功能
这篇文章主要介绍了C++项目基于HuffmanTree实现文件的压缩与解压缩功能,本文给大家提到文件压缩的概念介绍及压缩方法,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下2021-08-08
最新评论