Qt 常用方法 获取磁盘总大小、可用空间、文件夹大小 文件大小B KB M G转换

本文主要是介绍Qt 常用方法 获取磁盘总大小、可用空间、文件夹大小 文件大小B KB M G转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 常用方法 获取磁盘总大小、可用空间、文件夹大小 文件大小B KB M G转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/318904

相关文章

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

Java实现视频格式转换的完整指南

《Java实现视频格式转换的完整指南》在Java中实现视频格式的转换,通常需要借助第三方工具或库,因为视频的编解码操作复杂且性能需求较高,以下是实现视频格式转换的常用方法和步骤,需要的朋友可以参考下... 目录核心思路方法一:通过调用 FFmpeg 命令步骤示例代码说明优点方法二:使用 Jaffree(FF

Python实现获取带合并单元格的表格数据

《Python实现获取带合并单元格的表格数据》由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,所以本文我们就来聊聊如何使用Python实现获取带合并单元格的表格数据吧... 由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,现将将封装成类,并通过调用list_exc

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

C语言中的常见进制转换详解(从二进制到十六进制)

《C语言中的常见进制转换详解(从二进制到十六进制)》进制转换是计算机编程中的一个常见任务,特别是在处理低级别的数据操作时,C语言作为一门底层编程语言,在进制转换方面提供了灵活的操作方式,今天,我们将深... 目录1、进制基础2、C语言中的进制转换2.1 从十进制转换为其他进制十进制转二进制十进制转八进制十进

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注