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

  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、付费专栏及课程。

余额充值