一个方法调用自身的方法称之为递归,常用的两种递归就是阶乘和删除目录了(包括流的拷贝,这块不讲)
阶乘
算阶乘需要有一个终止边界,终止边界就是=1 的时候,这块直接上代码
public static int getJieCheng(int a){
if (a==1){
return 1;
}else{
return a*getJieCheng(a-1);
}
}
删除path下面的所有文件和目录
递归删除的顺序
我这块直接使用这个参考的截图相关
参考文档:https://blog.csdn.net/weixin_34087307/article/details/93729906
1、判断file为不为空的文件夹,到2
2、判断subfile1为不为空的文件夹,到3
3、判断srf1为文件,删除自己,到4
4、判断sf2为空文件夹,删除自己,到5
5、此时subfile1中所有内容都已删除为空,subfile1删除自己,到6
6、subfile2不为空文件夹,到7
7、slf为文件,删除自己,到8
8、subfile2为空文件夹,删除自己,到9
9、此时根目录file已经为空文件夹了,再删除自己。至此,所有文件和文件夹删除完毕
相关代码
public static boolean deleteFile(String path) {
File file = new File(path);
if (file.isDirectory()) {
for (File f : file.listFiles()) {
if (f.isDirectory()) {
boolean success = deleteFile(f.getPath());
if (!success){
return false;
}
}
f.delete();
}
}
return file.delete();
}
网友评论