QT(04)檔案管理
阿新 • • 發佈:2020-07-23
目錄操作 QDir、QFileInfo Linux下的目錄 Windows下的目錄
QDir.currentPath(); 返回當前路徑 返回當前目錄
QDir.homePath(); 返回使用者目錄 C:/Users/Administrator
QDir.rootPath(); 返回根目錄 C:/
QDir.tempPath(); 返回臨時目錄 C:/Users/Administrator/AppData/Local/Temp
切換目錄
QDir.cd("path");
QDir mDir("C:/Qt/workspace/lesson3資料夾遍歷"); foreach (QFileInfo mItem, mDir.entryInfoList()) { if(mItem.isDir()) qDebug() <<" Dir "<< mItem.filePath(); else if(mItem.isFile()) qDebug() <<" File "<< mItem.filePath(); }
QDir mDir(QDir::current()); QStringList filters; filters<<"*.cpp檔案過濾器,只看指定型別的檔案"<<"*.h"<<"*.txt"<<".pro"; mDir.setNameFilters(filters); qDebug()<<mDir.entryList(filters, QDir::Files); //開始過濾
檔案操作 QFile QDir、QFileInfo
讀寫的方式開啟檔案 file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append )
寫入一行資料 file.write("hello world\r");
QFile->seek(offset);檔案偏移值,預設是0 但是QIODevice::Append會把offset偏移到檔案末尾
讀取一行資料 file.readLine(); 如果是讀寫的方式開啟 ,讀的時候要確保檔案的seek(offset) 是0 ,再利用while( ! file.atEnd())把所有行都讀出來
QFile file("test.txt"); if( ! file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append )) { qDebug()<<"open fail"; } file.write("hello world\r"); file.seek(0); while( ! file.atEnd()) { qDebug()<<file.readLine(); } file.close();test
讀取全部 file.readAll();一樣要確保檔案的seek(offset) 是0 , 還有很多讀寫的介面函式