void Cdm_01Dlg::TravelFolder(CString strDir, int nDepth)
{
CFileFind filefind; //声明CFileFind类型变量
CString strWildpath = strDir + _T("//*.*"); //所有文件都列出。
int i = 0;
CListCtrl pList = (CListCtrl)GetDlgItem(IDC_LIST);
pList -> InsertItem(0, _T(""));
if(filefind.FindFile(strWildpath, 0)) //开始检索文件
{
BOOL bRet = TRUE;
while(bRet)
{
bRet = filefind.FindNextFile(); //枚举一个文件
if(filefind.IsDots()) //如果是. 或 .. 做下一个
continue;
if(!filefind.IsDirectory()) //不是子目录,把文件名打印出来
{
CString strTextOut = strDir + CString(_T("//")) + filefind.GetFileName();
pList->SetItemText(i, 0, strTextOut);
i++;
//m_StrOut += strTextOut;
//m_StrOut += _T("\r\n");
}
else //如果是子目录,递归调用该函数
{
CString strTextOut = strDir + CString(_T("//")) + filefind.GetFileName();
pList->SetItemText(i, 0, strTextOut);
i++;
TravelFolder(strTextOut, nDepth + 1);//递归调用该函数打印子目录里的文件
}
}
filefind.Close();
}
}