QStorageInfo获取磁盘信息(非常详细)

QStorageInfo类提供了系统当前挂载的存储和驱动器的相关信息,包括它们的空间,挂载点,标签名,文件系统名。

一般,我们可以使用特定的文件或目录来创建一个QStorageInfo类的对象,也可以使用其静态方法mountedVolumes()来得到当前系统中挂载的所有文件系统的列表;还可以使用root()静态方法,来获取根文件系统的相关信息,在Linux平台是即为"/"目录,在Windows平台上即为系统盘。

该类的一般使用形式如下:

QStorageInfo storage = QStorageInfo::root();

qDebug() << storage.rootPath();
if (storage.isReadOnly())
qDebug() << "isReadOnly:" << storage.isReadOnly();

qDebug() << "name:" << storage.name();
qDebug() << "fileSystemType:" << storage.fileSystemType();
qDebug() << "size:" << storage.bytesTotal()/1000/1000 << "MB";
qDebug() << "availableSize:" << storage.bytesAvailable()/1000/1000 << "MB";
注意,该类会缓存所获得的信息,我们可以在必要的使用调用它的refresh()方法来使缓存失效,从而获得最新的信息。
下面,我们使用一个Qt控制台程序,来遍历当前电脑上的所有磁盘信息:

#include <QCoreApplication>
#include <QStorageInfo>
#include <QDebug>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QList<QStorageInfo> list = QStorageInfo::mountedVolumes();
qDebug() << "Volume Num: " << list.size();
for(QStorageInfo& si : list)
{
qDebug() << "Name: " << si.name();
qDebug() << "Block Size: " << si.blockSize();
qDebug() << "Bytes Avaliable: " << si.bytesAvailable();
qDebug() << "Bytes Free: " << si.bytesFree();
qDebug() << "Bytes Total: " << si.bytesTotal();
qDebug() << "Display Name: " << si.displayName();
qDebug() << "File System Type: " << si.fileSystemType();
qDebug() << "Is ReadOnly: " << si.isReadOnly();
qDebug() << "Is Root: " << si.isRoot();
}

qDebug() << QStorageInfo::root().device();

return a.exec();
}
运行结果如下:

可以看出,当前系统上有4个驱动器,前面三个是本地硬盘,分别对应着系统,软件,文档三个分区,第四个没有名字的光驱。大家也可以在自己电脑上自行测试。
---------------------
作者:求道玉
来源:CSDN
原文:https://blog.csdn.net/Amnes1a/article/details/70154766
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/findumars/p/10247621.html

时间: 2024-11-08 01:32:24

QStorageInfo获取磁盘信息(非常详细)的相关文章

学习API之获取磁盘信息

#include <windows.h>#include <stdio.h> /************************************* BOOL GetDiskSpaceInfo(LPSTR pszDrive)* 功能:根据输入磁盘驱动器,获取磁盘信息* 参数:LPSTR pszDrive 驱动器根路径,如 D:************************************/ BOOL GetDiskSpaceInfo(LPSTR pszDrive){

借助Sigar API获取磁盘信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取磁盘信息: package com.ghj.packageoftest; import org.hyperic.sigar.FileSystem; import org.hyperic.sigar.FileSystemUsage; impor

通过kfed自动获取磁盘信息的小脚本

编译KFED [oracle@rac lib]$cd $ORACLE_HOME/rdbms/lib [[email protected] lib]$ pwd /u01/app/oracle/product/10.2.0/db_1/rdbms/lib [[email protected] lib]$ make -f ins_rdbms.mk ikfed Linking KFED utility (kfed) rm -f/u01/app/oracle/product/10.2.0/db_1/rdbm

windows程序设计 获取磁盘容量

//磁盘分区的总容量(字节)=总簇数*每簇扇区数*每扇区字节数 //磁盘分区的空闲空间(字节)=空闲簇数*每簇扇区数*每扇区字节数 BOOL GetDiskFreeSpace( LPCTSTR lpRootPathName,//指向所要获取磁盘空间信息的磁盘分区根路径字符串 LPDWORD lpSectorsPerCluster,//指向存储每簇扇区数的DWORD类型变量 LPDWORD lpBytesPerSector,//指向存储每扇区字节数的DWORD类型变量 LPDWORD lpNumb

Python查询磁盘信息,磁盘剩余可用空间

参考:https://www.iteye.com/blog/halfish-1706810 环境: Python: 3.6 系统:server 2016 设计模块包:wmi   #pip install wmi import wmi def get_disk_info(): """ 获取物理磁盘信息. """ tmplist = [] c = wmi.WMI() for physical_disk in c.Win32_DiskDrive():

C#获取磁盘列表与信息

方法1:使用Environment //获取当前计算机逻辑磁盘名称列表 String[] drives = Environment.GetLogicalDrives(); Console.WriteLine("GetLogicalDrives: {0}", String.Join(", ", drives)); 方法2:使用DriveInfo可以获取比较详细信息 1.命名空间 using System.IO; 2.获取代码 /// <summary> /

【java 获取数据库信息】获取MySQL或其他数据库的详细信息

1.首先是 通过数据库获取数据表的详细列信息 1 package com.sxd.mysqlInfo.test; 2 3 import java.sql.Connection; 4 import java.sql.DatabaseMetaData; 5 import java.sql.DriverManager; 6 import java.sql.PreparedStatement; 7 import java.sql.ResultSet; 8 import java.sql.ResultSe

iphone获取当前磁盘信息

获取iphone磁盘总大小.已使用空间.空闲空间 1. [代码][C/C++]代码 -(float)getFreeDiskspace {    float totalSpace;    float totalFreeSpace;    float totalUsedSpace;        NSError *error = nil;      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NS

微信企业号 获取用户信息

业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录. 在微信企业号中,用户在微信中访问页面时,可以根据相关API获取此用户的微信账号信息,以此来匹配业务服务器存储的相关用户信息. 目录 1.  介绍 2.  代码示例 1. 介绍 1.1 说明 企业号的网页开发,说白了就是移动端web开发,特殊点在于如何获取微信用户的身份信息. 在企业号中可以进行如下步骤获取微信用户信息: 访问一个业务页面时,可通过OAuth验证接口获取此用户信息 → 根据code获取user