取得指定路径下所有目录及文件名称(递归)

 
  1. using System.IO;   
  2.   
  3. ///    
  4. /// 取得指定路径下所有目录及文件名称(可递归)   
  5. ///    
  6. /// 指定路径   
  7. /// 要与 strDir 中的文件名匹配的搜索字符串   
  8. /// 例:   
  9. /// “*.abc*”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。   
  10. /// “*.abcd”只返回扩展名为 .abcd 的文件。   
  11. /// “*.abcde”只返回扩展名为 .abcde 的文件。   
  12. /// “*.abcdef”只返回扩展名为 .abcdef 的文件。   
  13. ///    
  14. /// 查询得到的所有目录ArrayList   
  15. /// 查询得到的所有文件名称ArrayList   
  16. /// 是否递归查询   
  17. private void GetFileList(string strDir, string strFilePattern, ArrayList arrDirs,   
  18.       ArrayList arrFiles, bool bIsRecursive)   
  19. {   
  20.     if (string.IsNullOrEmpty(strDir))   
  21.       {   // 参数正确性检查   
  22.         return;   
  23.       }   
  24.   
  25.     try  
  26.       {   
  27.         // 取得指定路径下所有符合条件的文件   
  28.         string[] strFiles = Directory.GetFiles(strDir, strFilePattern);   
  29.         // 取得指定路径下所有目录   
  30.         string[] strDirs = Directory.GetDirectories(strDir);   
  31.   
  32.         foreach (string name in strFiles)   
  33.           {   // 将所有文件名称加入结果ArrayList中   
  34.               arrFiles.Add(name);   
  35.           }   
  36.   
  37.         foreach (string name in strDirs)   
  38.           {   // 将所有目录加入结果ArrayList中   
  39.               arrDirs.Add(name);   
  40.           }   
  41.   
  42.         if (bIsRecursive)   
  43.           {   // 递归   
  44.             if (strDirs.Length > 0)   
  45.               {   
  46.                 foreach (string dir in strDirs)   
  47.                   {   // 递归遍历所有文件夹   
  48.                       GetFileList(dir, strFilePattern, arrDirs, arrFiles, bIsRecursive);   
  49.                   }   
  50.               }   
  51.           }   
  52.   
  53.       }   
  54.     catch  
  55.       {// 异常处理   
  56.       }   
  57. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值