递归是:方法调用方法本身的一种现象
条件: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()); } } }
夹....