当前位置: 移动技术网 > IT编程>开发语言>c# > c#递归遍历文件夹示例

c#递归遍历文件夹示例

2019年07月18日  | 移动技术网IT编程  | 我要评论

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

复制代码 代码如下:

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


如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网