c#递归遍历文件夹示例
c#递归遍历文件夹示例
发布时间:2017-01-07 来源:查字典编辑
摘要:代码很简单,指定需要递归遍历的文件夹和遍历规则就要可以运行了复制代码代码如下://////递归获取文件夹目录下文件//////需要递归遍历的...

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

复制代码 代码如下:

/// <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:UsersAdministratorDownloads", (FileInfo file) =>

{

if (file.Extension.Equals(".xls"))//获取excel类型文件

{

Console.WriteLine(string.Format("============{0}==============", file.FullName));

}

c#递归遍历文件夹示例1

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类