函数名: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); } } }