C#递归的应用实例详解

开发 后端
C#递归的应用来解决文件的逐级展开是十分有实用性的操作,那么具体的执行是怎么样子的呢?让我们看看这里向你展示的实例实现。

C#递归的应用是可以让繁琐的问题的变得简单可执行,那么具体的实例就是打开文件的操作,我们知道获得某一目录下第一级的所有文件和文件夹列表,很容易办到:

DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目录,绝对地址  
 
DirectoryInfo[] diA=di.GetDirectories();//获得了所有一级子目录  
 
FileInfo[] fiA=di.GetFiles();//获得了所有起始目录下的文件  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

要是想获得某一目录下的所有文件和目录(包含所有子目录),那该怎么办呢?目录都是一层套一层的,我们不能预知某个目录的深度,只有获得了父节点,才有可能了解子节点,解决这个问题,只有递归这个概念了。

C#递归的简单理解,它就是一个方法,在这个方法里面,再次调用它本身这个方法,从而描述了某一事物运作的深度…… - - 不废话了,看代码吧:

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);  
 
//注意:这里使用C#递归的方法  
 
}  
 
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

最后,如何把所有目录信息从ArrayList中取出来呢?如下:

for(int i=0;i<al.Count;i++)  
 
{  
 
 textBox1.AppendText(al[i].ToString()+" ");  
 
//textBox1是容器,拷贝我的代码,注意要换一个你自己的容器  
 
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

C#递归方法的应用就向你介绍到这里,希望对你理解和学习C#递归以及应用有所帮助。

【编辑推荐】

  1. C#关机代码的实现浅析
  2. C#程序设计关闭Windows窗体浅析
  3. C#程序设计获取系统信息的Windows窗体浅析
  4. C#递归算法理解的实例分析
  5. C#递归思路的使用实例详解
责任编辑:仲衡 来源: bokelife.com
相关推荐

2009-09-02 18:44:19

C#递归

2009-09-03 09:16:35

C#递归函数

2009-09-11 12:31:52

C#实例详解TypeConvert

2009-09-02 11:18:10

C#动态数组

2009-09-04 18:09:12

C# Main函数

2009-08-28 12:47:30

C#静态方法应用

2009-09-01 15:47:20

C#取整函数

2009-09-11 13:03:48

Scope属性

2009-09-03 18:55:08

C#判断浏览器

2009-09-02 18:39:34

C#递归算法

2009-08-18 10:14:19

C#插件构架

2009-08-20 11:01:51

C#操作内存

2009-09-02 17:12:06

C#关机代码

2009-09-03 10:52:41

C#递归树

2009-08-17 17:49:20

C# 枚举

2009-09-07 05:50:59

C# Timer用法

2009-08-21 10:13:02

C#异步初步

2009-08-26 09:22:44

C#实现打印功能

2009-09-01 11:25:08

C#读取Word文件

2009-08-28 13:12:56

C#反射实例C#反射
点赞
收藏

51CTO技术栈公众号