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