递归获取文件目录

来源:互联网 发布:打码刷码软件官方下载 编辑:程序博客网 时间:2024/05/17 03:36
 2 
 31.
 4//1、1、2、3、5、8、13、21、34 求第30位数是多少, 用递归算法实现
 5
 6//解剖递归算法
 7
 8//猛一看这一串数据还真看不出来个啥,但是只要你认真查找,就能看出规律。
 9
10//从上面可以看出前两个数相加得到第三个数。
11
12public static int SuanFa (int i)
13        {
14             if(i>0)
15              {
16                  if (1 >= i || i <= 2)
17
18                      return 1;
19
20                   if(i>2)
21
22                      return SuanFa(i-1+ SuanFa(i-2);
23
24              }

25              else
26
27                 return 0;
28
29        }

30
31
322.C#遍历指定目录的递归(完美改进版+完整程序源码) 
33昨天写了一下遍历目录树的思路和核心代码,今天将其实践化了一下,做了个实际的例子,遍历指定目录下的所有文件和文件夹,并将其按层次归类显示,对文件夹有标志提示,将文件夹与文件区分了出来。
34
35下面是改进版的核心方法代码:
36
37public ArrayList al = new ArrayList();//定义存储文件和文件夹名的数组
38 2    public int aaa = 0;//定义标志位参数,递归时判断该参数,若不为0则非第一次递归
39 3    public void GetAllDirList(string strBaseDir)
40 4    {
41 5        DirectoryInfo di = new DirectoryInfo(strBaseDir);
42 6        DirectoryInfo[] diA = di.GetDirectories();
43 7        if(aaa==0)
44 8        {
45 9        FileInfo[] fis2 = di.GetFiles();   //有关目录下的文件   
4610        for (int i2 = 0; i2 < fis2.Length; i2++)
4711        {
4812            al.Add(fis2[i2].FullName);
4913            //fis2[i2].FullName是根目录中文件的绝对地址,把它记录在ArrayList中
5014        }

5115        }

5216        for (int i = 0; i < diA.Length; i++)
5317        {
5418                aaa++;
5519                al.Add(diA[i].FullName + "\t<目录>");
5620                //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
5721                DirectoryInfo di1 = new DirectoryInfo(diA[i].FullName);
5822                DirectoryInfo[] diA1 = di1.GetDirectories();
5923                FileInfo[] fis1 = di1.GetFiles();   //有关目录下的文件   
6024                    for (int ii = 0; ii < fis1.Length;ii++ )
6125                    {
6226                        al.Add(fis1[ii].FullName);
6327                        //fis1[ii].FullName是某个子目录中文件的绝对地址,把它记录在ArrayList中
6428
6529                    }
   
6630                GetAllDirList(diA[i].FullName);
6731                //注意:递归了。逻辑思维正常的人应该能反应过来
6832        }

6933                
7034    }

71
72

具体原理每行关键核心代码后都有注释,大家应该可以看明白的

原创粉丝点击