1. 程式人生 > 實用技巧 >QT(04)檔案管理

QT(04)檔案管理

目錄操作 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 , 還有很多讀寫的介面函式