qfile
用於進行檔案操作,提供讀寫檔案的介面
qtextstream
用於處理文字檔案,提供讀寫檔案的介面
qdatastream
用於處理二進位制檔案
qtemporaryfile
用於處理臨時檔案
qfileinfo
可以獲取檔案資訊
qdir
可以處理目錄
qfilesystemwatcher
可以監視檔案和目錄變化
qfile讀寫文字
qfile file("textfile1.txt"); // 指定檔名
if(file.open(qiodevice::readonly)) // readonly唯讀writeonly只寫readwrite讀寫
qdatastream in(&file); //從檔案中讀出資料
qstring name;
qdate birthday;
qint32 age;
in >> name >> birthday >> age; //獲取字串和整數
qdebug() << name << birthday << age;
file.close();
讀取的時候要和寫入的時候型別相同的讀出
讀原始資料,可以使用readrawdata()讀取,並儲存到定義好的char*快取中
寫原始資料,可以使用writerawdata()寫入
讀寫原始資料需要對資料進行編碼和解碼。
qdir目錄操作與檔案系統
qt使用"/「作為通用的目錄分隔符和url路徑分隔符。底層會根據作業系統的不同轉換為」/「和」"
isrelative()
和isabsolute()
函式可以判斷qdir物件是相對路徑還是絕對路徑,將相對路徑轉為絕對路徑可以使用函式makeabsolute()
函式
path()
可以返回目錄的路徑,可以通過setpath()設定新路徑。
dirname()
可以獲得目錄名
mkdir()
可以建立目錄
rename()
可以改變目錄名
exists()
判讀目錄是否存在
isroot()
和isreadable()獲得目錄屬性
count()
統計目錄下的條目,包括檔案、目錄和符號連線,總的條目數。
entrylist()
返回目錄下所有條目組成的字串鍊錶。
remove()
刪除檔案
redir()
刪除目錄
qfileinfolist qdir::entryinfolist
( const qstringlist &namefilters,
//此引數指定了檔名的過濾方式,如「*」,「.tar.gz」
filters filters=nofilter,
//此引數指定了檔案屬性的過濾方式,如目錄、檔案、讀寫屬性等
sortflags sort=nosort
//此引數指定了列表的排序情況
)const
// 示例
qfileinfolist list=dir.entryinfolist(string,qdir::allentries,qdir:: dirsfirst);
**qdir::filter()過濾方式**
qdir::sortflag()排序方式
qfileinfo獲取檔案資訊
qstring filename = qfiledialog::getopenfilename(this,"開啟","/", "files (*)");
qstring file = filename ;
qfileinfo info(file); // 根據輸入引數建立乙個qfileinfo物件
qint64 size = info.size(); // 獲得qfileinfo物件的大小
qdatetime created = info.created(); // 獲得qfileinfo物件的建立時間
qdatetime lastmodified = info.lastmodified(); // 獲得qfileinfo物件的最後修改時間
qdatetime lastread = info.lastread(); // 獲得qfileinfo物件的最後訪問時間
/* 判斷qfileinfo物件的檔案型別屬性 */
bool isdir = info.isdir(); // 是否為目錄
bool isfile = info.isfile(); // 是否為檔案
bool issymlink = info.issymlink(); // 判斷是否為符號連線
bool ishidden = info.ishidden(); // 判斷qfileinfo物件的隱藏屬性
bool isreadable = info.isreadable(); // 判斷qfileinfo物件的讀屬性
bool iswritable = info.iswritable(); // 判斷qfileinfo物件的寫屬性
bool i***ecutable = info.i***ecutable(); // 判斷qfileinfo物件的可執行屬性
注意:qfileinfo是一次性將檔案資訊讀到快取中,後續檔案資訊改變後,可以通過refresh()方法重新整理檔案資訊,也可以通過setcaching()方法關閉快取功能。
qfilesystemwatcher監視檔案和目錄變化
addpath()
// 新增指定的檔案和目錄
addpaths()
// 新增多個監視目錄
removepath()
// 移除不需要監視的目錄
removepaths()
// 移除不需要監視的多個目錄
filechanged()
// 當監視的檔案被修改或刪除時產生訊號
directorychanged()
// 當監視的目錄被改變或者刪除時產生的訊號
qfilesystemwatcher fswatcher;
fswatcher.addpath(path);
connect(&fswatcher, signal(directorychanged(qstring)), this, slot(*****));
Qt5檔案及磁碟處理
qt提供了qfile類用於進行檔案操作。qfile類提供了讀寫檔案的介面,可以讀寫文字檔案 二進位制檔案和qt的資源檔案。include include include intmain int argc,char ar return a.exec a if data.open qfile write...
ReactOS Freeldr磁碟及檔案管理2
arcopen的大體流程我們看過了。大致分為這幾步 1.函式會嘗試找到檔案所在分割槽的裝置控制代碼,如果還沒有對應的控制代碼。那麼使用device.functable中的open函式開啟裝置,並為這個裝置分配控制代碼。2.開啟裝置後條用 mount識別分割槽格式,識別成功返回另外的functable...
磁碟及檔案系統
fdisk 對磁碟進行分割槽 fdisk l 列出指定裝置的分割槽表資訊 fdisk etc sda,建立新分割槽 partprobe 讓核心更新分割槽資訊 fisk對磁碟分割槽後,使用partprobe命令,可不重啟系統就能識別 cat proc partitions,檢視分割槽資訊 root l...