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

相关文章

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化