源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#递归遍历文件夹示例

  • 时间:2020-09-28 13:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#递归遍历文件夹示例
代码很简单,指定需要递归遍历的文件夹和遍历规则就要可以运行了
[u]复制代码[/u] 代码如下:
/// <summary> /// 递归获取文件夹目录下文件 /// </summary> /// <param name="pathName">需要递归遍历的文件夹</param> /// <param name="fileRule">遍历规则『委托』</param> public static void LoopFolder(string pathName, Action<FileInfo> fileRule) { if (string.IsNullOrEmpty(pathName)) throw new ArgumentNullException(pathName); Queue<string> _pathQueue = new Queue<string>(); _pathQueue.Enqueue(pathName); while (_pathQueue.Count > 0) { string _path = _pathQueue.Dequeue(); DirectorySecurity _pathSecurity = new DirectorySecurity(_path, AccessControlSections.Access); if (!_pathSecurity.AreAccessRulesProtected)//文件夹权限是否可访问 { DirectoryInfo _directoryInfo = new DirectoryInfo(_path); foreach (DirectoryInfo diChild in _directoryInfo.GetDirectories()) { _pathQueue.Enqueue(diChild.FullName); } foreach (FileInfo file in _directoryInfo.GetFiles()) { fileRule(file); } } } }
举例使用
[u]复制代码[/u] 代码如下:
CSharpToolV2.LoopFolder(@"C:\Users\Administrator\Downloads\", (FileInfo file) => { if (file.Extension.Equals(".xls"))//获取excel类型文件 { Console.WriteLine(string.Format("============{0}==============", file.FullName)); }
[img]http://files.jb51.net/file_images/article/201403/20140326143530.jpg?2014226143725[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部