【转】MFC和批处理方法遍历文件夹

来源:互联网 发布:淘宝延长收货时间 花呗 编辑:程序博客网 时间:2024/04/28 20:27

MFC和批处理方法遍历文件夹

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