递归是:方法调用方法本身的一种现象
条件:1)必须有一个方法
2)必须有规律
3)必须存在出口条件(结束条件)
案例:
比如在 项目根目录下有一个demo目录里面有多个文件夹,文件夹中有文件;使用递归删除带内容的目录
需求:将Dome文件夹
1)描述一下当前项目下的demo路径:定义一个变量 String path="demo" ;
2)封装到File对象,表示它的路径形式 File(String path);
3)定义一个成员方法:删除文件夹 deleteFolder(File对象)
4)deleteFolder(File对象){
1.获取当前路径下的所有的文件夹以及文件的File数组
2,防止空指针异常,非空判断
3,遍历,获取所有的File对象
4,判断它是否文件夹 isDirectory()
5,是否文件夹 回到第三步 }
不是文件夹,是文件,----调用delete()将文件删除,输出删除的文件名称(看到谁被删了)
文件删除,删除文件
public class Test4 {
public static void main(String[] args) {
//定义一个变量:描述当前项目下demo文件夹
String path = "demo" ;
//创建File对象,封装路径
File file = new File(path) ;
//调用递归删除文件夹的方法
deleteFolder(file) ;
}
//定义一个递归删除文件夹的方法
private static void deleteFolder(File srcFile) {
//获取这个路径下的所有的文件夹以及文件的File的数组
File[] files = srcFile.listFiles();
//非空判断
if(files!=null){
//遍历
for(File file:files){
//判断file对象是否代表的是文件夹?
if(file.isDirectory()){
//是文件夹,继续调用 deleteFolder(file) ;
deleteFolder(file);
}else{
//不是文件夹,将文件删除
System.out.println(file.getName()+"----"+file.delete());
}
}
System.out.println(srcFile.getName()+"---"+srcFile.delete());
}
}
}
夹....
这篇博客详细介绍了如何使用Java实现递归删除文件夹的功能。首先定义了一个表示项目下`demo`路径的字符串变量,然后将其封装为File对象。接着定义了一个名为`deleteFolder`的递归方法,该方法遍历指定文件夹下的所有文件和子文件夹。如果遇到子文件夹,会继续递归调用`deleteFolder`方法;如果是文件,则直接删除,并打印出被删除的文件名。整个过程确保了存在出口条件,即当遍历完所有文件且成功删除后,递归终止。
599

被折叠的 条评论
为什么被折叠?



