1. 程式人生 > >QStorageInfo獲取磁碟資訊(非常詳細)

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
版權宣告:本文為博主原創文章,轉載請附上博文連結!