Code
1递归 (转) 2 31. 4//1、1、2、3、5、8、13、21、34 求第30位数是多少, 用递归算法实现 5 6//解剖递归算法 7 8//猛一看这一串数据还真看不出来个啥,但是只要你认真查找,就能看出规律。 910//从上面可以看出前两个数相加得到第三个数。1112public static int SuanFa (int i)13 {14 if(i>0)15 {16 if (1 >= i || i <= 2)1718 return 1;1920 if(i>2)2122 return SuanFa(i-1) + SuanFa(i-2);2324 }25 else2627 return 0;2829 }3031322.C#遍历指定目录的递归(完美改进版+完整程序源码) 33昨天写了一下遍历目录树的思路和核心代码,今天将其实践化了一下,做了个实际的例子,遍历指定目录下的所有文件和文件夹,并将其按层次归类显示,对文件夹有标志提示,将文件夹与文件区分了出来。3435下面是改进版的核心方法代码:3637public 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中64286529 } 6630 GetAllDirList(diA[i].FullName);6731 //注意:递归了。逻辑思维正常的人应该能反应过来6832 }6933 7034 }7172
具体原理每行关键核心代码后都有注释,大家应该可以看明白的
下面附上这个方法的使用范例(例子中有两个方法,第一个按钮只遍历指定目录下一级层次;第二个按钮是调用上述方法,遍历了指定目录下的所有层次文件夹和文件)源代码,点击下载
转载于:https://www.cnblogs.com/willwayer/archive/2009/03/24/1420215.html