MFC遍历文件夹

时间:2021-07-12 12:27:18

 

MFC遍历文件夹

 

作者:flyfish 2010-03-11

 

一 获取指定目录下当前文件夹和文件的路径

 

以获取D:\\test目录下的文件夹和文件为例

void ClassName::BrowseCurrentDir(CString strDir)
{
CFileFind finder;
CString strPath;
BOOL bWorking = finder.FindFile(strDir);
while (bWorking)
{
bWorking = finder.FindNextFile();
strPath = finder.GetFilePath();
//strPath就是所要获取Test目录下的文件夹和文件(包括路径)
//m_List.AddString(strPath);
}
finder.Close();
}

 


 

调用方式:

BrowseCurrentDir(_T("D:\\test\\*.*"));

如果是查找txt文本是 BrowseCurrentDir(_T("D:\\test\\*.txt"));

 

二获取指定目录下的所有文件的路径

 

以获取D:\\test目录下所有文件路径为例


 

void ClassName::BrowseCurrentAllFile(CString strDir)
{
if (strDir == _T(""))
{
return;
}
else
{
if (strDir.Right(1) != _T("\\"))
strDir += L"\\";
strDir = strDir + _T("*.*");
}
CFileFind finder;
CString strPath;
BOOL bWorking = finder.FindFile(strDir);
while (bWorking)
{
bWorking = finder.FindNextFile();
strPath = finder.GetFilePath();
if (finder.IsDirectory() && !finder.IsDots())
BrowseCurrentAllFile(strPath); //递归调用
else if (!finder.IsDirectory() && !finder.IsDots())
{
//strPath就是所要获取的文件路径
//m_List.AddString(strPath);
}

}
}


 

调用方式:

BrowseCurrentAllFile(_T("D:\\test"));

 

以上程序在Windows XP sp3+VC2005下调试通过