遍历文件目录,即把一个目录里的文件名都取出来。本文是CFileFind类的使用实例的笔记。下面的程序是从一个目录出发,把这个目录里的所有成员按着层次输出。
代码如下:
void TravelFolder(CString strDir, int nDepth) { CFileFind filefind; //声明CFileFind类型变量 CString strWildpath = strDir + _T("//*.*"); //所有文件都列出。 if(filefind.FindFile(strWildpath, 0)) //开始检索文件 { BOOL bRet = TRUE; while(bRet) { bRet = filefind.FindNextFile(); //枚举一个文件 if(filefind.IsDots()) //如果是. 或 .. 做下一个 continue; for (int i = 0; i < nDepth; i ++) //层次空格打印 { TRACE(_T(" ")); } if(!filefind.IsDirectory()) //不是子目录,把文件名打印出来 { CString strTextOut = strDir + CString(_T("//")) + filefind.GetFileName(); TRACE(_T("file = %s/r/n"), strTextOut); } else //如果是子目录,递归调用该函数 { CString strTextOut = strDir + CString(_T("//")) + filefind.GetFileName(); TRACE(_T("dir = %s/r/n"), strTextOut); TravelFolder(strTextOut, nDepth + 1);//递归调用该函数打印子目录里的文件 } } filefind.Close(); } }
参考:MFC文件,文件夹操作