MFC遞迴掃描指定資料夾下的所有檔案包括子資料夾下的檔案。
阿新 • • 發佈:2019-02-09
函式名:TraverseDir
函式功能:遞迴掃描制定資料夾下所有檔案(包括子資料夾下的檔案)
引數:strDir, vecFiles
(入口) strDir : 用於遞迴掃描的資料夾路徑
(出口) vecFiles : 資料夾下的所有檔名的一個vector
返回值: 無
額外說明:返回的檔名可選擇為是否帶字尾,和是否獲取全路徑
作者:weekdawn
void TraverseDir(const CString& strDir, std::vector<CString>& vecFiles)//strDir為傳入的資料夾路徑,vecFiles為掃描到的檔案集 { CFileFind ff; //在路徑後面新增\*.*字尾 if (strDir.Right(1) != "\\") strDir += "\\"; strDir += "*.*"; BOOL ret = ff.FindFile(strDir); while (ret) { ret = ff.FindNextFile(); if (ff.IsDirectory() && !ff.IsDots()) { CString path = ff.GetFilePath(); TraverseDir(path, vecFiles); } else if (!ff.IsDirectory() && !ff.IsDots()) { //CString name = ff.GetFileName();//獲取帶字尾的檔名 CString name = ff.GetFilePath();//獲取檔案路徑 //CString name = ff.GetFileTitle();//獲取不帶字尾的檔名 vecFiles.push_back(name); } } }