2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目

c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目

时间:2022-07-15 03:17:41

相关推荐

c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目

//遍历一个目录下所有的文件列表,代码实例

DirectoryInfo dir = new DirectoryInfo(folderName);

var list = GetAll(dir);

///

/// 搜索文件夹中的文件

///

///

///

private static List GetAll(DirectoryInfo dir)

{

List fileList = new List();

FileInfo[] allFile = dir.GetFiles();

foreach (FileInfo fi in allFile)

{

fileList.Add(fi.FullName);

}

DirectoryInfo[] allDir= dir.GetDirectories();

foreach (DirectoryInfo d in allDir)

{

fileList.AddRange(GetAll(d));

}

return fileList;

}

File------实用类,提供许多静态方法,用于移动、删除、和复制文件。

Directory------实用类,提供许多静态方法,用于移动、删除和复制目录。

FileInfo------表示磁盘上的物理文件,具有可以处理此文件的方法,要完成对文件的读写工作,就必须创建Stream对像。

DirectoryInfo------表示磁盘上的物理目录,具有可以处理此目录的方法

这里提供了三种方法:

1、获得指定目录下的所有文件

2、获得指定目录及其子目录的所有文件

3、列出指定目录下及所其有子目录及子目录里更深层目录里的文件(需要递归)

代码如下:

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.IO;namespaceWebAppFile

{public partial class_Default : System.Web.UI.Page

{protected void Page_Load(objectsender, EventArgs e)

{string filePath=@"c:/log/";

Response.Write("测试1,获得指定目录下的所有文件:

");

List list1 =GetFilesByDir(filePath);foreach (FileInfo fi inlist1)

{

Response.Write("完整路径:" + fi.FullName.ToString() + "文件名:" + fi.Name + "

");

}

Response.Write("

测试2,获得指定目录及其子目录的所有文件:

");

List list2 =GetAllFilesByDir(filePath);foreach (FileInfo fi inlist2)

{

Response.Write("完整路径:"+fi.FullName.ToString() +"文件名:"+fi.Name+ "

");

}

Response.Write("

测试3,列出指定目录下及所有子目录及子目录里更深层目录里的文件:

");

GetAllFiles(filePath);

}///

///获得指定目录下的所有文件///

///

///

public List GetFilesByDir(stringpath)

{

DirectoryInfo di= newDirectoryInfo(path);//找到该目录下的文件

FileInfo[] fi =di.GetFiles();//把FileInfo[]数组转换为List

List list = fi.ToList();returnlist;

}///

///获得指定目录及其子目录的所有文件///

///

///

public List GetAllFilesByDir(stringpath)

{

DirectoryInfo dir= newDirectoryInfo(path);//找到该目录下的文件

FileInfo[] fi =dir.GetFiles();//把FileInfo[]数组转换为List

List list = fi.ToList();//找到该目录下的所有目录里的文件

DirectoryInfo[] subDir =dir.GetDirectories();foreach (DirectoryInfo d insubDir)

{

List subList =GetFilesByDir(d.FullName);foreach (FileInfo subFile insubList)

{

list.Add(subFile);

}

}returnlist;

}///

///列出指定目录下及所其有子目录及子目录里更深层目录里的文件(需要递归)///

///

public void GetAllFiles(stringpath)

{

DirectoryInfo dir= newDirectoryInfo(path);//找到该目录下的文件

FileInfo[] fi =dir.GetFiles();foreach (FileInfo f infi)

{

Response.Write("完整路径:" + f.FullName.ToString() + "文件名:" + f.Name + "

");

}//找到该目录下的所有目录再递归

DirectoryInfo[] subDir =dir.GetDirectories();foreach (DirectoryInfo d insubDir)

{

GetAllFiles(d.FullName);

}

}

}

}

运行结果:

测试1,获得指定目录下的所有文件:

完整路径:c:/log/-12-17.xml 文件名:-12-17.xml

完整路径:c:/log/-12-20.xml 文件名:-12-20.xml

测试2,获得指定目录及其子目录的所有文件:

完整路径:c:/log/-12-17.xml 文件名:-12-17.xml

完整路径:c:/log/-12-20.xml 文件名:-12-20.xml

完整路径:c:/log/LogBak/-11-20.xml 文件名:-11-20.xml

测试3,列出指定目录下及所有子目录及子目录里更深层目录里的文件:

完整路径:c:/log/-12-17.xml 文件名:-12-17.xml

完整路径:c:/log/-12-20.xml 文件名:-12-20.xml

完整路径:c:/log/LogBak/-11-20.xml 文件名:-11-20.xml

完整路径:c:/log/LogBak/TempLog/-11-20.xml 文件名:-11-20.xml

关于第3种列出指定目录下及其所有子目录及子目录里更深层目录里的文件(需要递归),如何写成一个方法呢,希望大家来帮忙。

c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。