1.MFC方法:
//参数 szRootPath要查找的根结点,不带最后的"\"
void CFindfileDlg::FindFile(const char *szRootPath)
{
WIN32_FIND_DATA findData;
CString strFileName= szRootPath;
strFileName += "\\*.*"; //注:这里可以用通配符,( *.txt, a?.txt等)
HANDLE hFind=FindFirstFile( strFileName, &findData );
BOOL bFind = hFind ? TRUE : FALSE;
while ( bFind )
{
if( findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
{
CString strroot;
strroot.Format( "%s\\%s", szRootPath, findData.cFileName );
if( strcmp( findData.cFileName, "..") && strcmp( findData.cFileName, ".") )
FindFile( strroot ); //递归
}
else
{
CString strShow;
strShow.Format( "%s\\%s", szRootPath, findData.cFileName );
ShowFile( strShow ); //查找到的文件名
}
bFind = FindNextFile( hFind, &findData );
}
}
2.批处理方法.(批处理不会,以下代码上以前在网上找的),示例:在当前文件夹及子文件夹删除后缀为.tree的文件.
::@echo off
rem 正在搜索...
rem 删除文件
for /f "delims=" %%i in ('dir /b /a-d /s "*.tree"') do del %%i
rem 删除完毕
pause
本文介绍使用MFC和批处理两种方法来遍历文件夹的技术细节。MFC方法通过递归调用实现了目录及其子目录下所有文件的检索。批处理示例则展示了如何在当前文件夹及其子文件夹中查找并删除特定类型的文件。
867

被折叠的 条评论
为什么被折叠?



