遍历文件夹下面所有文件

 
  1. // 遍历文件夹下面所有文件
  2. // $_FUNCTION_BEGIN ******************************
  3. // 函数名称: SearchDirectory
  4. // 函数参数: 
  5. // 返 回 值: 
  6. // 函数说明: 遍历文件夹下面所有文件, 并对文件进行指定的操作
  7. // $_FUNCTION_END ********************************
  8. typedef void ( * _FUN )(char *aszFileName)  ;
  9. SearchDirectory(char * lpPath, _FUN aFun)
  10. {
  11.     char szFind[MAX_PATH]="";
  12.     WIN32_FIND_DATA FindFileData;
  13.     char szFile[MAX_PATH]="";
  14.     char szCurrentDir[MAX_PATH]="";
  15.     char szCurrentFileName[MAX_PATH]="";
  16.     
  17.     //保存当前查找的目录
  18.     strcpy(szCurrentDir, lpPath);
  19.     
  20.     strcpy(szFind,lpPath);
  21.     strcat(szFind,"//*.*");
  22.     HANDLE hFind=::FindFirstFile(szFind,&FindFileData);
  23.     if(INVALID_HANDLE_VALUE == hFind)    return;
  24.     while(TRUE)
  25.     {
  26.         if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
  27.         {
  28.             if(FindFileData.cFileName[0]!='.')
  29.             {   
  30.                 //找到目录, 继续向下遍历
  31.                 strcpy(szFile,lpPath);
  32.                 strcat(szFile,"//");
  33.                 strcat(szFile,FindFileData.cFileName);
  34.                 SearchDirectory(szFile, aFun);
  35.             }
  36.         }
  37.         else
  38.         {
  39.             strcat(szCurrentFileName, szCurrentDir);
  40.             strcat(szCurrentFileName,"//");
  41.             strcat(szCurrentFileName, FindFileData.cFileName);
  42.             cout << szCurrentFileName;
  43.             if (aFun!=NULL)
  44.                 aFun(szCurrentFileName);
  45.             szCurrentFileName[0]=0x00;
  46.         }
  47.         if(!FindNextFile(hFind,&FindFileData))    break;
  48.     }
  49.     FindClose(hFind);
  50. }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blue_Dream_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值