Qt 中磁碟檔案的檢測和篩選

2021-10-06 14:26:58 字數 1729 閱讀 5344

獲取磁碟容量關鍵函式:

void

disksend::getdiskspace(qstring strdisk, double& dtotalbytes,

double& dfreebytes)

//unit : gb

dtotalbytes = ltotalbytestemp.quadpart /

1024.0 / 1024 / 1024;

dfreebytes = ltotalfreebytes.quadpart /

1024.0 / 1024 / 1024;

//總計:xxgb

ui.totallabel->settext(qstring::number(dtotalbytes,

'f', 3));

//剩餘可用:xxgb

ui.freelabel->settext(qstring::number(dfreebytes,

'f', 3));

}

一、磁碟容量檢測

該模組細分三個子模組

(1)通過改變qcommbobox indexcahnged訊號槽,來獲取對應磁碟總容量和所剩可用容量

定義qcommbox訊號槽,獲取磁碟string

connect(ui.combobox,

signal(currentindexchanged(const qstring&)),

this, slot(slotdiskchanged(const

qstring&)));

(2)通過設定定時器,每隔十秒檢測所有磁碟容量並展示出來

定義定時器,每隔10檢測裝置所有磁碟一次

connect(m_timer,

signal(timeout()), this, slot(slotdiskchanged()));

(3)通過udp傳送該裝置所有磁碟資訊

qbytearray

datagram;

qdatastream

out(&datagram, qiodevice::writeonly);

out.setversion(qdatastream::qt_5_5);

out <<

/*qdatetime::currentdatetime() << */dtotalbytes << dfreebytes;

//qdebug() <<

qdatetime::currentdatetime();

qhostaddress

address;

address.setaddress(「192.168.1.67」);

udpsocket->writedatagram(datagram,

address, 5555);

qthread::sleep(1);

二、篩選磁碟內特定檔案

遍歷所有磁碟

遍歷每個磁碟所有資料夾,直至資料夾沒有子節點(即檔案)

注:此時我們找的是指定檔案(test.txt)

根據字首fname

來遍歷查詢 sfiles.basename() ;

void disksend::findspecialfile(qstring strdir, qstringlist filename,qstringfname)

if (sfiles.isfile() == true)}}

//return s;

}

Qt載入磁碟檔案和對檔案內容進行過濾

一 關鍵函式 1,qdir file path 當前檔案路徑 2,qstringlist filelist file entrylist 獲得進入目錄的檔案列表 3,當前程式的目錄 4,qdir setcurrent path 設定當前的目錄 二,例項 1,標頭檔案 ifndef loadfilef...

Qt 遍歷資料夾並篩選的簡單使用

1 遍歷某路徑下的所有檔案 qstring svgpath e qdir dir svgpath dir.setfilter qdir files qdir hidden qdir nosymlinks dir.setsorting qdir size qdir reversed qstringli...

Qt中的 qrc檔案

qt中的qrc檔案 是乙個xml格式的資源配置檔案,與應用程式關聯的應用程式由 qrc 檔案來指定,它用xml記錄硬碟上的檔案和對應的隨意指定的資源名稱,應用程式通過資源名稱來訪問資源。指定的路徑是 qrc 檔案所在目錄的相對路徑。注意,列出的資源檔案必須位於 qrc 檔案所在目錄或者其子目錄下。圖...