Qt文件操作

Qt文件操作

QFile

說明:

QFile是一種輸入輸出設備(QIODevice),用來關聯一個文件。可以用來對文件進行以下操作:打開\關閉\刪除\重命名\拷貝\一個文件。

QFile構造函數

QFile::QFile(const QString &name);

函數fileName()

QString QFile::fileName()const;//返回的是完整路徑名

QFileInfo

用處很大。

構造函數

QFileInfo(const QString &file);
QFileInfo(const QFile &file);
QFileInfo(const QDir &dir, const QString &file);
QFileInfo(const QFileInfo &fileinfo);

常用函數

QString fileName() const;//只返回文件名,不包含路徑  
QString filePath() const;//返回完整文件名,包含路徑  
QString absoluteFilePath() const;
QString canonicalFilePath() const;

QString baseName() const;//相當於第一個函數的結果去掉後綴名  
QString completeBaseName() const;
QString suffix() const;//後綴名
QString bundleName() const;//Mac OS X 上的suffix()函數
QString completeSuffix() const;

QDir

當需要獲取目錄下的信息時使用。構造的時候只傳入文件夾名,不要傳入具體文件

構造函數

QDir(const QDir&);  
QDir(const QString &path = QString());  
QDir( const QString &path,    
      const QString &nameFilter,   
      SortFlags sort = SortFlags(Name| IgnoreCase), Filters filter = AllEntries);  

常用函數

第一組

  • static QDir QDir::current();//返回應用程序的當前目錄
  • static QString QDir::currentPath();//返回應用程序的當前目錄的絕對路徑。
    這兩個函數的區別是:返回值不同。第一個函數返回一個目錄對象,由第三個構造函數可以看出,一個目錄對象包含多個成員變量,第一個變量的值就是currentPath()的返回值。

第二組

  • QString dirName() const; //返回目錄的名稱
  • QString path() const;//返回目錄的完整路徑
  • QString absolutePath() const; //返回目錄的絕對路徑

第三組 最有用

QStringList entryList(const QStringList &nameFilters,   
                      Filters filters = NoFilter,  
                      SortFlags sort = NoSort )const
QStringList entryList(Filters filters = NoFilter,  
                      SortFlags sort = NoSort); 
這兩個函數返回的是目錄下的文件名、目錄名、默認還包含兩個特殊文件夾"."".."。注意!!!!!   只有名字,沒有路徑。
QFileInfoList entryInfoList(const QStringList &nameFilters,   
                             Filters filters = NoFilter,  
                             SortFlags sort = NoSort)const;
QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort);  `                                                                                                                              
這兩個函數返回QFileInfo,而QFileInfo有個filePath,可以返回文件、文件夾的完整路徑。

案例

1.獲取一個文件夾下的所有.txt文件。

例如:在文件夾”j:/TestProject/src”下有一個子文件夾test和三個文件1.txt 2.txt 3.xml;
要獲取1.txt 和2.txt 代碼如下:

QString dirPath = QFileDialog::getExistingDirectory();  
QDir dir(dirPath);  
QStringList nameFilters;  
nameFilters << "*.txt";  
QFileInfoList fileInfos = dir.entryInfoList(nameFilters,QDir::Files|QDir::NoDotAndDotDot);
foreach(QFileInfo fileInfo , fileInfos)
{
   qDebug() << fileInfo.filePath();
}

對於fieName()返回值的總結

如果一個類只提供了fileName()一個函數,則它返回的是完整路徑。如果一個類同時提供了fileName() 和filePath(),則fileName()返回的僅僅是文件名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章