MFC中CFileFind遍歷資料夾下檔案

2020-10-09 18:01:19
BOOL FindFileAll(const CString &filePath)
{
    CFileFind stFileFind;
    BOOL bReault = stFileFind.FindFile(filePath);
    if(FALAE==bResult)
        return FALSE;

    while(TRUE==bResult)
    {
         bResult = stFileFind. FindNextFile();
         //過濾掉「.」和「..」
        if(TRUE==stFileFind.IsDots())continue;
        else if(TRUE==stFileFind.IsDirectory())
        {
            if(false==FindFileAll(stFileFind.GetFilePath+"\\*"))
                return FALSE;
        }
        else
        {
            CString strFileName=stFileFind.GetFileName();
            //查詢自己需要的檔案型別,繼續做其他操作。
            if(stFileFind.IsReadOnly())//唯讀
                ……
            else if(stFileFind.IsCompress())//壓縮
                ……
            else if(stFileFind.IsDirectory())//目錄
                ……
            else if(stFileFind.IsSystem())//系統
                ……
            else if(stFileFind.IsHidden())//隱藏
                ……
            else if(stFileFind.IsTemporary())//臨時
                ……
            else if(stFileFind.IsNomal())//常規
                ……
            else if(stFileFind.IsArchived)//檔案
                ……
        }
        stFileFind. Close();
        return TRUE;
    }
}