递归简单运用求出文件夹大小以及删除文件夹

递归简单经典例子

 斐波那契数列

第n项是第n-1项和第n-2项之和

//斐波那契数列
public class RecursionTest2 {
    public static void main(String[] args) {
        System.out.println(add(7));
    }
    //1,1,2,3,5,8,13,21,34,55
    public static int add(int n){
        if (n<0) {
            System.out.println("输入不规范");
            return -1;
        }
        if (n==1){
                return 1;
            }
        if(n==0)
            return 0;
        return add(n-1)+add(n-2);
        }
    }

 阶乘
 
迭代不断的把任务抛给前一项,
第5项的积为5乘上第4项的阶乘
第4项的积为4乘上第3项的阶乘.
第3项的积为3乘上第2项的阶乘.
第2项的积为2乘上第1项的阶乘.
第1项结果就是1
//阶乘
public class RecursionTest {
    public static void main(String[] args) {
        System.out.println(function(5));
    }
    public static int function(int n){
        if (n>=0){
            if (n==0){
                return 1;
            }
            return n*function(n-1);
        }else {
            System.out.println("输入有误");
            return -1;
        }
    }
}

求文件夹大小

mport java.io.File;
//获取文件夹大小
public class GetFileTest {
    public static void main(String[] args) {
        String path = "D:" + File.separator + "eclipse";
        File file=new File(path);
        System.out.println(getLength(file));
    }
    public static long getLength(File file){
        System.out.println("当前正在统计的是:"+file.getAbsoluteFile());
        long length = file.length();
        //判断是不是标准文件还是目录
        if(file.isFile()){
            length=file.length();
            //返回值,不然报空指针异常
            return length;
        }
        //如果不是标准文件
        File[] files = file.listFiles();
        for (File f:files){
            //文件长度等于length+方法调用
            length=length+getLength(f);
        }
        return length;
    }

}
删除文件夹
import java.io.File;
//删除文件夹
public class DeleteFileTest {
    public static void main(String[] args) {
        System.out.println("========================");
        String path = "D:" + File.separator + "AAB";
        deleteDir(path);

    }
    //定义方法传入路径名
public static void deleteDir(String path){
        File file=new File(path);
    File[] files = file.listFiles();
    //遍历文件列表
    for (File f:files){
        //如果是文件夹用递归思想删除
        if (f.isDirectory()){
            //删除绝对路径
            deleteDir(f.getAbsolutePath());
        }else {
            //如果是标准文件直接删除
            f.delete();
        }
    }
    //把文件夹删完自己也要删除
    file.delete();
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值