//遍历一个目录下所有的文件列表,代码实例
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中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)...