c#递归遍历文件夹示例

 更新时间:2014年03月26日 14:40:07   作者:  
这篇文章主要介绍了c#递归遍历文件夹示例,需要的朋友可以参考下

代码很简单,指定需要递归遍历的文件夹和遍历规则就要可以运行了

复制代码 代码如下:

/// <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);
}
}
}
}

举例使用

复制代码 代码如下:

CSharpToolV2.LoopFolder(@"C:\Users\Administrator\Downloads\", (FileInfo file) =>
{
if (file.Extension.Equals(".xls"))//获取excel类型文件
{
Console.WriteLine(string.Format("============{0}==============", file.FullName));
}


相关文章

  • C#简单操作MongoDB的步骤全纪录

    C#简单操作MongoDB的步骤全纪录

    最近花了不少时间研究学习了MongoDB数据库的相关知识,下面这篇文章主要给大家介绍了关于C#简单操作MongoDB的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-09-09
  • Unity Shader片段着色器使用基础详解

    Unity Shader片段着色器使用基础详解

    顶点-片段着色器是Unity Shader中最基础的着色器类型,用于控制3D模型的渲染效果。通过顶点着色器计算模型的顶点位置和法线方向,再通过片段着色器计算模型表面的颜色、光照、阴影等效果
    2023-05-05
  • C# 启动 SQL Server 服务的实例

    C# 启动 SQL Server 服务的实例

    下面小编就为大家分享一篇C# 启动 SQL Server 服务的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C#实现屏幕抓图并保存的示例代码

    C#实现屏幕抓图并保存的示例代码

    这篇文章主要为大家详细介绍了如何利用C#实现屏幕抓图并保存的功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • C#泛型的使用及示例详解

    C#泛型的使用及示例详解

    这篇文章主要介绍了C#泛型的使用及示例,本文通过例子个大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 几分钟搞懂c#之FileStream对象读写大文件(推荐)

    几分钟搞懂c#之FileStream对象读写大文件(推荐)

    这篇文章主要介绍了c#之FileStream对象读写大文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Unity UGUI的StandaloneInputModule标准输入模块组件使用示例

    Unity UGUI的StandaloneInputModule标准输入模块组件使用示例

    这篇文章主要为大家介绍了Unity UGUI的StandaloneInputModule标准输入模块组件使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • C#基础:Dispose()、Close()、Finalize()的区别详解

    C#基础:Dispose()、Close()、Finalize()的区别详解

    本篇文章是对c#中的Dispose()、Close()、Finalize()的区别进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#实现时间戳的简单方法

    C#实现时间戳的简单方法

    这篇文章主要介绍了C#实现时间戳的简单方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • C#日期格式字符串的相互转换操作实例分析

    C#日期格式字符串的相互转换操作实例分析

    这篇文章主要介绍了C#日期格式字符串的相互转换操作,结合实例形式分析了C#日期格式字符串的相互转换操作函数与相关使用技巧,需要的朋友可以参考下
    2019-08-08

最新评论