1. 程式人生 > >QDir類及其用法總結

QDir類及其用法總結

使用方法 dot 連接 排序。 cep 指向 例如 enable tab

簡介

QDir類提供了訪問系統目錄結構及其內容的與平臺無關的方式。

頭文件:#include <qdir.h>


QDir類用來操作路徑名及底層文件系統,獲取關於目錄路徑及文件的相關信息,也可以用來獲取Qt資源系統的文件信息。
QDir類使用相對或絕對文件路徑來指向一個文件/目錄。
絕對路徑是從目錄分隔符“/”或者帶有一個驅動器標識(除了在Unix下)。
如果總是使用“/”作為目錄分隔符,Qt將會把你的路徑轉化為符合底層的操作系統的。
相對文件名是由一個目錄名稱或者文件名開始並且指定一個相對於當前路徑的路徑。
絕對路徑示例:

技術分享圖片

其中第二個路徑是Windows系統下,它指向的路徑是:C:\Documents and Secctings。
相對路徑示例:

技術分享圖片

註意當前路徑是指應用程序的工作目錄,而QDir自己的路徑可以通過setPath()設置並且通過path()獲得。
可以使用QDir類的方法isRelative()或者是isAbsolute()來判斷QDir指向的路徑是相對路徑還是絕對路徑,如果是相對路徑,可使用方法makeAbsolute()將相對路徑轉換為絕對路徑。

1. 目錄及導航操作

QDir類對象所關聯的目錄路徑可以使用path()函數獲得,可以使用setPath()方法來設置新的路徑;

可以使用方法absolutePath()來獲得目錄的絕對路徑。

目錄名可以使用dirName()方法來獲得,該方法返回絕對路徑中的最後一個項目,即目錄名,但如果QDir關聯的是當前工作目錄,則返回"."。

可以使用mkdir()方法來創建一個目錄;
使用rename()方法來對關聯目錄進行重命名;
使用rmdir()方法來移除一個目錄;
使用exists()方法檢測目錄是否存在;
使用refresh()方法來刷新目錄內容。
其余方法詳見QDir類的API文檔。

2. 文件及目錄內容

文件系統中目錄中一般包括文件、子目錄及符號鏈接;


可以使用count()方法來獲得QDir類對象關聯的目錄中的條目數目;
可以使用entryList()獲取所有條目的名稱;
可以使用entryInfoList()來獲取條目的QFileInfo內容。
可以使用filePath()及absoluteFilePath()來獲得QDir中指定文件的路徑名,但這兩個函數均不檢查指定的文件是否存在;
可以使用remove()方法來刪除指定文件;
可以使用過濾器來獲取指定類型的文件,當文件符合過濾器指定條件時被保留;
過濾器中的內容實際上是一個stringList。

3. 當前目錄及其他特定路徑

可以使用一些靜態函數來訪問指定的路徑,這些函數返回一個QDir對象:
技術分享圖片

可以使用靜態函數setCurrent()來設置應用程序的工作路徑。

4.API中的實例

參考一個目錄是否存在

 QDir d( "example" );                        // “./example”
 if ( !d.exists() )
    qWarning( "Cannot find the example directory" );

一個列出當前目錄中所有文件(不包括符號連接)的程序,按大小排序,小的在前。

#include <stdio.h>
    #include <qdir.h>

    int main( int argc, char **argv )
    {
        QDir d;
        d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
        d.setSorting( QDir::Size | QDir::Reversed );

        const QFileInfoList *list = d.entryInfoList();
        QFileInfoListIterator it( *list );
        QFileInfo *fi;

        printf( "     Bytes Filename\n" );
        while ( (fi = it.current()) != 0 ) {
            printf( "%10li %s\n", fi->size(), fi->fileName()。latin1() );
            ++it;
        }
        return 0;
    }

5. QDir中的Filter枚舉變量

enum QDir::Filter 與 flags QDir::Filters 中常用的枚舉變量值及其含義如下:

QDir::Dirs 0x001 列出目錄;
QDir::AllDirs 0x400 列出所有目錄,不對目錄名進行過濾;
QDir::Files 0x002 列出文件;
QDir::Drives0x004 列出邏輯驅動器名稱,該枚舉變量在Linux/Unix中將被忽略;
QDir::NoSymLinks 0x008 不列出符號鏈接;
QDir::NoDotAndDotDot 0x1000 不列出文件系統中的特殊文件.及..;
QDir::NoDot 0x2000 不列出.文件,即指向當前目錄的軟鏈接
QDir::NoDotDot0x4000 不列出..文件;
QDir::AllEntries 其值為Dirs | Files | Drives,列出目錄、文件、驅動器及軟鏈接等所有文件;
QDir::Readable 0x010 列出當前應用有讀權限的文件或目錄;
QDir::Writable 0x020 列出當前應用有寫權限的文件或目錄;
QDir::Executable0x040 列出當前應用有執行權限的文件或目錄;
Readable、Writable及Executable均需要和Dirs或Files枚舉值聯合使用
QDir::Modified0x080 列出已被修改的文件,該值在Linux/Unix系統中將被忽略;
QDir::Hidden0x100 列出隱藏文件;
QDir::System0x200 列出系統文件;
QDir::CaseSensitive0x800 設定過濾器為大小寫敏感。

6. QDir中的SortFlag枚舉變量

這個枚舉變量描述的是QDir如何排列由 entryList() 或 entryInfoList() 返回的條目。被指定的排列的值可以由下述列表中的值或運算得到:

  • QDir::Name - 按名稱排序。
  • QDir::Time - 按時間排序(修改時間)。
  • QDir::Size - 按文件大小排序。
  • QDir::Unsorted - 不排序。
  • QDir::SortByMask - Name、Time和Size的掩碼。
  • QDir::DirsFirst - 首先是目錄,然後是文件。
  • QDir::Reversed - 相反的排序順序。
  • QDir::IgnoreCase - 不區分大小寫進行排序。
  • QDir::DefaultSort - 內部標記。

前四種中你只能指定一個。

如果你同時指定DirsFirst和Reversed,目錄仍然會被放在前面,但是按照反向的順序,文件仍然排在目錄後面,當然也是按照反向的順序。

7.成員函數文檔

QDir::QDir ()

構造一個指向當前目錄的QDir。

也可以參考currentDirPath()。

QDir::QDir ( const QString & path, const QString & nameFilter = QString::null, int sortSpec = Name | IgnoreCase, int filterSpec = All )

構造一個路徑為path、名稱過濾器為nameFilter並且屬性過濾器為filterSpec的QDir。它也使用sortSpec來排列名稱。

默認的nameFilter是一個空字符串,不包含任何東西,默認的filterSpec是All,也就是說也不包含任何東西。默認的sortSpecName|IgnoreCase,也就是說不區分大小寫按名稱排序。

下面是列出“/tmp”中所有文件的實例:

    QDir d( "/tmp" );
    for ( int i = 0; i < d.count(); i++ )
        printf( "%s\n", d[i] );
  

如果path為“”或零,QDir使用“.”(當前目錄)。如果nameFilter為“”或零,QDir使用“*”(所有文件)。

註意path不需要存在。

也可以參考exists()、setPath()、setNameFilter()、setFilter()和setSorting()。

QDir::QDir ( const QDir & d )

構造一個目錄d的復制的QDir。

也可以參考operator=()。

QDir::~QDir () [虛]

銷毀QDir並且釋放它的資源。

QString QDir::absFilePath ( const QString & fileName, bool acceptAbsPath = TRUE ) const [虛]

返回路徑中一個文件的絕對路徑名稱。檢查這個文件是否真的存在於這個目錄中。在fileName中多余的分隔符或者“.”和“..”目錄將被移除(請參考cleanDirPath())。

如果acceptAbsPath為真,由分隔符“/”開始的fileName將會被不改變地立即返回。如果acceptAbsPath為假,絕對路徑將被被加到fileName的前面並且結果字符串被返回。

也可以參考filePath()。

QString QDir::absPath () const [虛]

返回絕對路徑(一個由“/”或驅動器標識開始的路徑),可能包含符號連接,但是不會包含“.”、“..”或者多個分隔符。

也可以參考setPath()、canonicalPath()、exists()、cleanDirPath()、dirName()和absFilePath()。

實例:fileiconview/qfileiconview.cpp。

QString QDir::canonicalPath () const [虛]

返回規範的路徑,也就是沒有符號連接或者多余的“.”、“..”元素的路徑。

在沒有符號連接的系統上,這個函數總是返回和absPath()返回值一樣的值。如果規範路徑不存在(通常是因為掛起的符號連接)。

也可以參考path()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()和QString::isNull()。

bool QDir::cd ( const QString & dirName, bool acceptAbsPath = TRUE ) [虛]

改變QDir的目錄為dirName

如果acceptAbsPath為真,由分隔符“/”開始的路徑將會導致這個函數改變到這個絕對路徑。如果acceptAbsPath為假,dirName前面的任何數量的分隔符都將被移除並且這個函數將會進入到dirName中。

如果新的路徑存在並且是可讀的,返回真。註意如果新的目錄不存在,邏輯上的cd()操作不會被執行。

調用cd( ".." )等於調用cdUp()。

也可以參考cdUp()、isReadable()、exists()和path()。

實例:fileiconview/mainwindow.cpp。

bool QDir::cdUp () [虛]

改變目錄為QDir的當前目錄的上一級目錄。

如果新的路徑存在並且是可讀的,返回真。註意如果新的目錄不存在,邏輯上的cdUp()操作不會被執行。

也可以參考cd()、isReadable()、exists()和path()。

QString QDir::cleanDirPath ( const QString & filePath ) [靜態]

移除filePath的多重目錄分隔符“/”並且解析其中的“.”或者“..”。

符號連接會被保留。這個函數不返回規範路徑,但會是輸入的最簡化的版本。“./local”變為“local”、“local/../bin”變為“bin”並且“/local/usr/../bin”變為“/local/bin”。

也可以參考absPath()和canonicalPath()。

QString QDir::convertSeparators ( const QString & pathName ) [靜態]

pathName裏面的“/”分隔符轉化為適用於底層操作系統的分隔符。返回轉化的字符串。

在Windows上,convertSeparators("c:/winnt/system32")返回“c:\winnt\system32”。

在一些操作系統上,例如在Unix上,返回的字符串可能和參數是一樣的。

void QDir::convertToAbs () [虛]

把目錄路經轉化為絕對路徑。如果它已經是絕對路徑了,就什麽也不做。

也可以參考isRelative()。

uint QDir::count () const

返回找到的目錄和文件的數量。

Equivalent to entryList()。count()。

也可以參考operator[]()和entryList()。

QDir QDir::current () [靜態]

返回應用程序當前目錄。

使用path()來訪問QDir對象的路徑。

也可以參考currentDirPath()和QDir::QDir()。

QString QDir::currentDirPath () [靜態]

返回應用程序當前目錄的絕對路徑。

也可以參考current()。

實例:helpviewer/helpwindow.cpp和qdir/qdir.cpp。

QString QDir::dirName () const [虛]

返回目錄的名稱,這和路徑是不同的,例如一個名稱為“mail”的目錄,也許路徑為“/var/spool/mail”。如果目錄沒有名字(例如,它是根目錄),一個零字符串被返回。

不會執行檢測來確保這個名稱的目錄真正存在。

也可以參考path()、absPath()、absFilePath()、exists()和QString::isNull()。

const QFileInfoList * QDir::drives () [靜態]

返回這個系統中根目錄的列表。在Windows中,這將返回許多包含“”、“”等等的QFileInfo對象。在其它操作系統,它返回的是只包含一個根目錄(例如“/”)的列表。

返回的指針的所有權歸Qt。調用者不要刪除或者修改它。

實例:dirview/main.cpp。

QStrList QDir::encodedEntryList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虛]

這個函數是廢棄的。它的提供只是為了保證舊代碼能夠工作。我們強烈建議在新代碼中不要使用它。

這個函數被包含是因為可以很容易地從Qt 1.x移植到Qt 3.0,它和entryList()是一樣地,但是文件名的編碼方式是使用QFile::encodedName()的8位字符串。

使用它比使用entryList()更有效率。

QStrList QDir::encodedEntryList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虛]

這個函數是廢棄的。它的提供只是為了保證舊代碼能夠工作。我們強烈建議在新代碼中不要使用它。

這是一個重載成員函數,用於提供方便。它的行為基於上面的函數。

這個函數被包含是因為可以很容易地從Qt 1.x移植到Qt 3.0,它和entryList()是一樣地,但是文件名的編碼方式是使用QFile::encodedName()的8位字符串。

使用它比使用entryList()更有效率。

const QFileInfoList * QDir::entryInfoList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虛]

返回這個目錄中所有目錄和文件的QFileInfo對象的列表,根據setSorting()排序並且根據setFilter()和setNameFilter()進行過濾。

過濾器和排序的規定可以使用nameFilterfilterSpecsortSpec參數來指定。

如果這個目錄是不可讀的或者不存在,返回0。

返回的指針是一個指向QFileInfoList的常量指針。這個列表歸QDir對象所有並且將會在同一個QDir實例下次調用entryInfoList()時被重新使用。如果你想在調用這個函數之後保留這個列表的條目,你將需要復制它們。

也可以參考entryList()、setNameFilter()、setSorting()和setFilter()。

實例:dirview/dirview.cpp和fileiconview/qfileiconview.cpp。

const QFileInfoList * QDir::entryInfoList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虛]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

返回這個目錄中所有目錄和文件的QFileInfo對象的列表,根據setSorting()排序並且根據setFilter()和setNameFilter()進行過濾。

過濾器和排序的規定可以使用filterSpecsortSpec參數來指定。

如果這個目錄是不可讀的或者不存在,返回0。

返回的指針是一個指向QFileInfoList的常量指針。這個列表歸QDir對象所有並且將會在同一個QDir實例下次調用entryInfoList()時被重新使用。如果你想在調用這個函數之後保留這個列表的條目,你將需要復制它們。

也可以參考entryList()、setNameFilter()、setSorting()和setFilter()。

QStringList QDir::entryList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虛]

返回這個目錄中所有目錄和文件的名稱的列表,根據setSorting()排序並且根據setFilter()和setNameFilter()進行過濾。

過濾器和排序的規定可以使用nameFilterfilterSpecsortSpec參數來指定。

如果這個目錄是不可讀的或者不存在,返回空的列表。。

也可以參考entryInfoList()、setNameFilter()、setSorting()和setFilter()。

實例:table/statistics/statistics.cpp。

QStringList QDir::entryList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虛]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

返回這個目錄中所有目錄和文件的名稱的列表,根據setSorting()排序並且根據setFilter()和setNameFilter()進行過濾。

過濾器和排序的規定可以使用filterSpecsortSpec參數來指定。

如果這個目錄是不可讀的或者不存在,返回空的列表。。

也可以參考entryInfoList()、setNameFilter()、setSorting()和setFilter()。

bool QDir::exists ( const QString & name, bool acceptAbsPath = TRUE ) [虛]

檢查文件name的存在性。

如果acceptAbsPath為真,由分隔符“/”開始的路徑將會使用絕對路徑檢查這個文件。如果acceptAbsPath為假,name開始的任何數量的分隔符將會被移除並且結果文件名將被檢查。

如果文件存在,返回真,否則返回假。

也可以參考QFileInfo::exists()和QFile::exists()。

bool QDir::exists () const [虛]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

如果directory存在,返回真。(如果發現一個同名的文件,這個函數將返回假)。

也可以參考QFileInfo::exists()和QFile::exists()。

QString QDir::filePath ( const QString & fileName, bool acceptAbsPath = TRUE ) const [虛]

返回目錄中一個文件的路徑名稱。檢查這個文件是否真的存在於這個目錄中。如果QDir是相對的,返回的路徑名稱也是相對的。fileName中多余的多重分隔符或者“.”和“..”目錄將被移除(請參考cleanDirPath())。

如果acceptAbsPath為真,由分隔符“/”開始的fileName將會被不改變地立即返回。如果acceptAbsPath為假,絕對路徑將被被加到fileName的前面並且結果字符串被返回。

也可以參考absFilePath()、isRelative()和canonicalPath()。

FilterSpec QDir::filter () const

返回由setFilter()設置的值。

QDir QDir::home () [靜態]

返回主目錄。

在Windows NT/2000下,這個函數通過連接HOMEDRIVEHOMEPATH環境變量來形成這個路徑。

在Windows 9x和非Windows操作系統,HOME環境變量被使用。

如果這個環境變量沒有被設置,rootDirPath()用來代替它。

也可以參考homeDirPath()。

QString QDir::homeDirPath () [靜態]

返回用戶的主目錄的絕對路徑。

也可以參考home()。

bool QDir::isReadable () const [虛]

如果目錄是可讀的並且我們可以通過名稱打開文件,返回真。如果只有上述一個條件存在,這個函數返回假。 警告: 這個函數返回的假並不保證這個目錄不可訪問。

也可以參考QFileInfo::isReadable()。

實例:dirview/dirview.cpp和fileiconview/qfileiconview.cpp。

bool QDir::isRelative () const [虛]

如果目錄路徑是相對於當前路徑的,返回真,並且如果路徑是絕對的(例如在Unix下,一個路徑如果沒有以“/”開始就是相對的),返回假。

也可以參考convertToAbs()。

bool QDir::isRelativePath ( const QString & path ) [靜態]

如果path是相對的,返回真,如果它是絕對的,返回假。

也可以參考isRelative()。

bool QDir::isRoot () const [虛]

如果目錄是根目錄,返回真,否則返回假。

註意:如果目錄是一個連接到根目錄的符號連接,這個函數返回假。如果你想測試這一點,你可以使用canonicalPath():

實例:

    QDir d( "/tmp/root_link" );
    d = d.canonicalPath();
    if ( d.isRoot() )
        qWarning( "It IS a root link!" );

也可以參考root()和rootDirPath()。

bool QDir::match ( const QString & filter, const QString & fileName ) [靜態]

如果fileName與通配符模式filter匹配,返回真。filter也可以包含由空格或者分號分割的多個模式。

(請參考QRegExp通配符匹配。)

也可以參考QRegExp::match()。

bool QDir::match ( const QStringList & filters, const QString & fileName ) [靜態]

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

如果fileName與列表filters中的通配符模式匹配,返回真。

(請參考QRegExp通配符匹配。)

也可以參考QRegExp::match()。

bool QDir::matchAllDirs () const

返回由setMatchAllDirs()設置的值。

也可以參考setMatchAllDirs()。

bool QDir::mkdir ( const QString & dirName, bool acceptAbsPath = TRUE ) const [虛]

創建一個目錄。

如果acceptAbsPath為真,由分隔符“/”開始的dirName將會被不改變地立即返回。如果acceptAbsPath為假,dirName的開始的任意個分隔符將被移除。

如果成功,返回真,否則返回假。

也可以參考rmdir()。

QString QDir::nameFilter () const

返回由setNameFilter()設置的字符串。

bool QDir::operator!= ( const QDir & d ) const [虛]

如果目錄d和這個目錄是不同的路徑或者不同的排序或過濾器設置,返回真,否則返回假。

實例:

    // 當前目錄為“/usr/local”
    QDir d1( "/usr/local/bin" );
    QDir d2( "bin" );
    if ( d1 != d2 ) qDebug( "They differ\n" ); // 這是被打印的

QDir & QDir::operator= ( const QDir & d )

完成一個QDir d的復制並且把它賦給這個QDir。

QDir & QDir::operator= ( const QString & path )

這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。

設置這個目錄的路徑為給定的path

bool QDir::operator== ( const QDir & d ) const [虛]

如果目錄d和這個目錄有相同的路徑、相同的排序和過濾器,返回真,否則返回假。

實例:

    // 當前目錄為“/usr/local”
    QDir d1( "/usr/local/bin" );
    QDir d2( "bin" );
    d2.convertToAbs();
    if ( d1 == d2 ) qDebug( "They‘re the same\n" ); // 這是被打印的
    

QString QDir::operator[] ( int index ) const

返回在文件名列表的index位置的文件名。等於entryList().at(index)。

如果index超出範圍或者entryList()函數失敗,返回一個零字符串。

也可以參考count()和entryList()。

QString QDir::path () const [虛]

返回這個路徑,這也許包含符號連接,但決不會包含多余的“.”、“..”或者多重分隔符。

返回的路徑可能是相對的也可能是絕對的(請參考setPath())。

也可以參考setPath()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()和convertSeparators()。

bool QDir::remove ( const QString & fileName, bool acceptAbsPath = TRUE ) [虛]

移除文件。

如果acceptAbsPath為真,由分隔符“/”開始的路徑將會移除使用絕對路徑的文件。如果acceptAbsPath為假,fileName開始的任意個分隔符將被移除並且結果文件將被移除。

如果文件移除成功,返回真,否則返回假。

bool QDir::rename ( const QString & oldName, const QString & newName, bool acceptAbsPaths = TRUE ) [虛]

重命名一個文件或目錄。

如果acceptAbsPath為真,由分隔符“/”開始的路徑將會重命名使用絕對路徑的文件。如果acceptAbsPath為假,fileName開始的任意個分隔符將被移除並且結果文件將被重命名。

如果成功,返回真,否則返回假。

在絕大多數文件系統中,只有在oldName不存在或者newNameoldName不在同一個分區中,rename()才會失敗。在Windows下,如果newName已經存在,rename()將會失敗。無論如何,還有其它幾個原因導致rename()失敗。例如,例如在文件系統中如果newName指向一個打開的文件,rename()會失敗。

實例:fileiconview/qfileiconview.cpp。

bool QDir::rmdir ( const QString & dirName, bool acceptAbsPath = TRUE ) const [虛]

移除一個目錄。

如果acceptAbsPath為真,由分隔符“/”開始的路徑將會移除使用絕對路徑的目錄。如果acceptAbsPath為假,dirName開始的任意個分隔符將被移除並且結果目錄將被移除。

為了使rmdir()成功,這個目錄必須為空。

如果成功,返回真,否則返回假。

也可以參考mkdir()。

QDir QDir::root () [靜態]

返回根目錄。

也可以參考rootDirPath()和drives()。

QString QDir::rootDirPath () [靜態]

返回根目錄的絕對路徑。

在Unix操作系統這個返回“/”。在Windows文件系統這個返回“C:/”。

也可以參考root()和drives()。

char QDir::separator () [靜態]

返回本地目錄分隔符,在Unix下是“/”,在MS-DOS、Windows NT和OS/2下是“\”,在Mac OS下是“:”。

你不需要這個函數來構建文件路徑。如果你一直使用“/”,Qt將會把你的路徑轉化為符合底層操作系統的路徑的。

bool QDir::setCurrent ( const QString & path ) [靜態]

設置你的應用程序的當前工作目錄為path。如果目錄被成功改變,返回真,否則返回假。

void QDir::setFilter ( int filterSpec ) [虛]

設置被entryList()和entryInfoList()使用的過濾器為filterSpec。過濾器被用來指定entryList()和entryInfoList()返回哪些文件。請參考QDir::FilterSpec。

也可以參考filter()和setNameFilter()。

void QDir::setMatchAllDirs ( bool enable ) [虛]

如果enable為真,那麽所有的目錄被包含(例如在entryList()中),並且nameFilter()僅適用於文件。如果enable為假,那麽nameFilter()同時適用於文件和目錄。

也可以參考matchAllDirs()。

void QDir::setNameFilter ( const QString & nameFilter ) [虛]

設置entryList()和entryInfoList()使用的名稱過濾器為nameFilter

nameFilter是一個可以理解“*”和“?”的通配符過濾器。(請參考QRegExp通配符匹配。)你可以使用單個空格“ ”或者分號“;”來分割幾個過濾器條目。

例如,如果你想entryList()和entryInfoList()列出所有以“.cpp”和“.h”結尾的文件,你需要使用dir.setNameFilter("*.cpp *.h")或dir.setNameFilter("*.cpp;*.h")。

也可以參考nameFilter()和setFilter()。

void QDir::setPath ( const QString & path ) [虛]

設置目錄的路徑為path。這個路徑被清除多余的“.”、“..”和多重分隔符。不會完成檢查來確保這個路徑的目錄是否存在。

路徑可以是相對的也可以是絕對的。絕對路徑是由目錄分隔符“/”或驅動器標識開始的(除了Unix下)。相對路徑是一個指定了相對於當前目錄的目錄名稱和文件名稱。一個絕對路徑的實例是“/tmp/quartz”,一個相對路徑的實例是“src/fatlib”。

也可以參考path()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()、isRelative()和convertToAbs()。

void QDir::setSorting ( int sortSpec ) [虛]

設置entryList()和entryInfoList()使用的排序順序。

sortSpec是由QDir::SortSpec中的枚舉變量的值或運算得到。

也可以參考sorting()和SortSpec。

SortSpec QDir::sorting () const

返回由setSorting()設置的值。

也可以參考setSorting()和SortSpec。

QDir類及其用法總結