C#递归的应用实例详解

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

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

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

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

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

C#递归实现代码

  1. public ArrayList al=new ArrayList();  
  2.  
  3. //我把ArrayList当成动态数组用,非常好用  
  4.  
  5. public void GetAllDirList(string strBaseDir)  
  6.  
  7. {  
  8.  
  9. DirectoryInfo di=new DirectoryInfo(strBaseDir);  
  10.  
  11. DirectoryInfo[] diA=di.GetDirectories();  
  12.  
  13.   for(int i=0;i<diA.Length;i++)  
  14.      
  15. {  
  16.  
  17.  al.Add(diA[i].FullName);  
  18.  
  19. //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中  
  20.  
  21.  GetAllDirList(diA[i].FullName);  
  22.  
  23. //注意:这里使用C#递归的方法  
  24.  
  25. }  
  26.  
  27. }  

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

  1. for(int i=0;i<al.Count;i++)  
  2.  
  3. {  
  4.  
  5.  textBox1.AppendText(al[i].ToString()+" ");  
  6.  
  7. //textBox1是容器,拷贝我的代码,注意要换一个你自己的容器  
  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-08-28 12:47:30

C#静态方法应用

2009-09-04 18:09:12

C# Main函数

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-09-02 17:12:06

C#关机代码

2009-08-18 10:14:19

C#插件构架

2009-08-20 11:01:51

C#操作内存

2009-08-17 17:49:20

C# 枚举

2024-10-21 07:05:14

C#特性语言

2024-07-10 08:31:59

C#特性代码

2009-09-03 10:52:41

C#递归树

2009-08-18 17:05:08

C#操作xml文件

2009-08-28 13:12:56

C#反射实例C#反射

2009-09-07 05:50:59

C# Timer用法
点赞
收藏

51CTO技术栈公众号