(13)递归算法之遍历文件目录

递归算法,也就是程序方法不断调用自身从而达到目标的一种算法。递归算法应用场景很广泛,比如说求某个数的阶乘,坐标点寻路,解答数学游戏等等。数独这样的游戏可通过递归算法轻松解决,这个会在后面介绍。本帖介绍的是比较简单的遍历文件目录。

方法调用示例:searchFolder("E://BaiduYunDownload");

算法说明:获取目录下的所有目录和文件,保存到File[]数组中,如果File对象是目录,以File对象路径为目录,调用searchFolder搜索File下的所有文件和目录。从而达到遍历的效果。

注意:一个不合理的递归算法很容易造成死循环,所以,递归终止条件一定要仔细考虑

						/**
						 * 遍历文件目录
						 * @param path 文件目录名
						 */
						public static void searchFolder(String path){
							File file=new File(path);
							if(file.exists()){
								File[] files=file.listFiles();
								if(files.length>0){
									for(int i=0;i<files.length;i++){
										if(files[i].isDirectory()){
											System.out.println(">>>进入文件夹:"+files[i].getAbsolutePath());
											searchFolder(files[i].getAbsolutePath());
										}else{
											System.out.println(files[i].getAbsolutePath());
										}
									}
								}else{
									System.out.println("文件夹下没有文件夹或文件");
								}
							}else{
								System.out.println("文件目录不存在");
							}
						}