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