循环 在方法中是正常执行的 只有一个方法的执行空间
递归 调用时产生很多一样的临时执行空间 消耗(栈)内存
循环能解决的问题 递归也能解决 但是递归性能慢
但是递归能解决的问题 循环不一定能解决
展示文件夹:
public void showFile(File file){
//获取传进来的file对象的所有子元素
File[] files = file.listFiles();
//要先 判断file是不是一个文件夹 且有元素
if(files!=null && files.length!=0){//这里用的短路与 因为如果用的是 & 若files为null 但是又files.length 就会出现空指针异常
for(File f:files){//这里是为了把每一个子元素都遍历一遍
this.showFile(f);
}
}
System.out.println(file.getAbsoluteFile());
//此时判断不是文件夹 才会输出
//注意输出的位置不同 结果会有不同
//如果放在if里面 那么 展示的是文件夹 不是文件
}
删除文件夹:
public void deleteFile(File file){
File[] files = file.listFiles();
if(files!=null && files.length!=0){
for(File f:files)
this.deleteFile(f);
}
file.delete();//这行代码不能随便放 因为不能删除非空的文件夹
}