C#遍历目录树的递归
来源:互联网 发布:mac幻灯片全屏 不满屏 编辑:程序博客网 时间:2024/05/16 15:03
众所周知,获得某一目录下第一级的所有文件和文件夹列表,很容易办到:
DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目录,绝对地址
DirectoryInfo[] diA=di.GetDirectories();//获得了所有一级子目录
FileInfo[] fiA=di.GetFiles();//获得了所有起始目录下的文件
DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目录,绝对地址
DirectoryInfo[] diA=di.GetDirectories();//获得了所有一级子目录
FileInfo[] fiA=di.GetFiles();//获得了所有起始目录下的文件
要是想获得某一目录下的所有文件和目录(包含所有子目录),那该怎么办呢?目录都是一层套一层的,我们不能预知某个目录的深度,只有获得了父节点,才有可能了解子节点,解决这个问题,只有递归这个概念了。
那么什么是递归呢?请不会C语言的朋友先去看书吧,我这里只简单的说一下我的理解:递归就是一个方法,在这个方法里面,再次调用它本身这个方法,从而描述了某一事物运作的深度…… - - 不废话了,看代码吧:
public ArrayList al=new ArrayList();
//我把ArrayList当成动态数组用,非常好用
public void GetAllDirList(string strBaseDir)
{
DirectoryInfo di=new DirectoryInfo(strBaseDir);
DirectoryInfo[] diA=di.GetDirectories();
for(int i=0;i<diA.Length;i++)
{
al.Add(diA[i].FullName);
//diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
GetAllDirList(diA[i].FullName);
//注意:递归了。逻辑思维正常的人应该能反应过来
}
}
最后,如何把所有目录信息从ArrayList中取出来呢?如下:
for(int i=0;i<al.Count;i++)
{
textBox1.AppendText(al[i].ToString()+" ");
//textBox1是容器,拷贝我的代码,注意要换一个你自己的容器
}
//我把ArrayList当成动态数组用,非常好用
public void GetAllDirList(string strBaseDir)
{
DirectoryInfo di=new DirectoryInfo(strBaseDir);
DirectoryInfo[] diA=di.GetDirectories();
for(int i=0;i<diA.Length;i++)
{
al.Add(diA[i].FullName);
//diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
GetAllDirList(diA[i].FullName);
//注意:递归了。逻辑思维正常的人应该能反应过来
}
}
最后,如何把所有目录信息从ArrayList中取出来呢?如下:
for(int i=0;i<al.Count;i++)
{
textBox1.AppendText(al[i].ToString()+" ");
//textBox1是容器,拷贝我的代码,注意要换一个你自己的容器
}
- C#遍历目录树的递归
- C#遍历目录树的 递归
- C#遍历目录树的递归
- C#遍历目录树的方法(递归)
- 目录的递归遍历
- 目录的递归遍历
- C# 递归遍历目录与非递归遍历目录
- C#递归方法遍历目录及子目录
- C#递归方法遍历目录及子目录
- 二叉树的非递归遍历 c#
- 【原创】遍历文件夹生成目录树的递归实现
- Java递归算法实现目录树的遍历
- C#遍历指定目录的递归-完美改进版+完整程序源码
- python.递归遍历指定的目录
- 递归遍历目录下的文件
- Java递归 遍历目录的小例子
- 递归遍历目录的shell脚本
- 递归遍历整个目录的代码
- C#异步初步
- 中国电信: 星空极速 流氓软件 盗取用户资料,弹出流氓广告,监控网民上网 【附:解锁程序】
- C#异步中级
- C#获得图片尺寸像素值
- RSS2.0结构
- C#遍历目录树的递归
- C#与打印机的故事
- 全局变量与static
- ASP.NET URL重定向技术
- 启动用户实例的进程时出错
- .NET的应用程序配置文件
- 应用服务器中ClassLoader有关内存的问题
- 如何快速生成100万不重复的8位编号(zjcxc(邹建)的专栏)
- H.263视频编码协议结构综述(转载)