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

相关文章

VSCode中C/C++编码乱码问题的两种解决方法

《VSCode中C/C++编码乱码问题的两种解决方法》在中国地区,Windows系统中的cmd和PowerShell默认编码是GBK,但VSCode默认使用UTF-8编码,这种编码不一致会导致在VSC... 目录问题方法一:通过 Code Runner 插件调整编码配置步骤方法二:在 PowerShell

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Java实现将byte[]转换为File对象

《Java实现将byte[]转换为File对象》这篇文章将通过一个简单的例子为大家演示Java如何实现byte[]转换为File对象,并将其上传到外部服务器,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言1. 问题背景2. 环境准备3. 实现步骤3.1 从 URL 获取图片字节数据3.2 将字节数组

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase