递归思想---删除文件夹

  • 递归思想
package com.uncle.test_io.newtestfile;

public class TestMethod {

//    public void testOne(){
//        this.testTwo();
//        System.out.println("我是testOne方法");
//    }
//    public void testTwo(){
//        this.testThree();
//        System.out.println("我是testTwo方法");
//    }
//    public void testThree(){
//        System.out.println("我是testThree方法");
//    }

    //递归---->本质是方法的调用
    //      设计一个方法  描述盖宝塔
//    public void buildTower(int floor){//5
//        for(int i=1;i<=floor;i++){
//            System.out.println("盖到第"+floor+"层宝塔啦");
//        }
//    }

    //递归的想法
    //  想让我做事(盖第五层) 我要求让别人把之前的事情做完
    //      1.让别人先做事
    //      2.我自己做事
    public void buildTower(int floor){//5
        //判断当前floor是否为1 若不是找一个别人先盖之前层
        if(floor>1){
            this.buildTower(floor-1);
        }
        //我自己做事
        System.out.println("盖到第"+floor+"层宝塔啦");
    }
//    public void buildTower(int floor){//4
//        //找一个别人先盖3层
//        this.buildTower(floor-1);
//        //我自己做事
//        System.out.println("盖到第"+floor+"层宝塔啦");
//    }
//    public void buildTower(int floor){//3
//        //找一个别人先盖2层
//        this.buildTower(floor-1);
//        //我自己做事
//        System.out.println("盖到第"+floor+"层宝塔啦");
//    }
//    public void buildTower(int floor){//2
//        //找一个别人先盖1层
//        this.buildTower(floor-1);
//        //我自己做事
//        System.out.println("盖到第"+floor+"层宝塔啦");
//    }
//    public void buildTower(int floor){//1
//        //我自己做事
//        System.out.println("盖到第"+floor+"层宝塔啦");
//    }


    public static void main(String[] args){
        //加载TestMethod类的过程
        TestMethod tm = new TestMethod();
        tm.buildTower(5);//执行一次
//        tm.testOne();//调用testOne让其执行一遍--->栈内存中 临时
    }

}

递归思想之删除文件夹(别乱玩,File的delete方法真的是彻底删除)

package com.uncle.test_io.newtestfile;

import java.io.File;

public class NewTestFile {

    //设计一个方法  用来展示(遍历)文件夹
    //  参数-->file(代表文件或文件夹)
    public void showFile(File file){//D://test文件夹
        //判断如果file是一个文件夹 文件夹内有元素 找一个人先做
        //获取file的子元素  files==null是个文件 files!=null是个文件夹 files.length!=0是一个带元素的文件夹
        File[] files = file.listFiles();//test文件夹所有子元素
        if(files!=null && files.length!=0){
            for(File f:files){//每一个子元素都找人遍历
                this.showFile(f);//循环第一次 test文件夹中的aaa 循环第二次 test->bbb 循环第三次 Test.txt
            }
        }
        //做自己的显示(file是文件或file是一个空的文件夹)
        System.out.println(file.getAbsolutePath());
    }

    //设计一个方法 删除文件夹
    //  参数 file
    public void deleteFile(File file){
        //判断file不是空文件夹 找人先做事
        File[] files = file.listFiles();
        if(files!=null && files.length!=0){
            for(File f:files){
                this.deleteFile(f);
            }
        }
        //删除file (file是个文件或file是一个空文件夹)
        file.delete();
    }

    public static void main(String[] args){
        NewTestFile ntf = new NewTestFile();
        File file = new File("D://test");
        ntf.deleteFile(file);
        //ntf.showFile(file);
    }
}

  • 递归核心思想
    递归思想---删除文件夹
  • 循环思想与递归思想的区别
    递归思想---删除文件夹
  • 正常方法调用过程
    递归思想---删除文件夹
  • 删除文件夹方法的执行顺序(参考代码里的路径看)
    递归思想---删除文件夹
上一篇:JavaScript Math 常用方法


下一篇:JS求随机数 Math.floor(Math.random() * (max - min + 1)) + min 理解