package com.lovecoding.day21.ex01;

import org.junit.Test;

import java.io.File;

public class TestFile01 {
    //第1题：求目录总大小
    //
    @Test
    public void test01(){
        long lovecoding = getPathLength1(new File("lovecoding"));
        System.out.println(lovecoding);
    }
    //获取大小
    public long getPathLength(File dir){
        //求和
        long l = 0;
        //是文件夹
        if (dir != null && dir.isDirectory()){
            //遍历
            File[] files = dir.listFiles();
            //判断
            if (files != null){
                for (File file : files) {
                    //文件夹
                    if ( file.isDirectory() ){
                        //递归 文件夹
                        l = l + getPathLength(file);
                    }else{
                        //统计文件
                        l = l + file.length();
                        System.out.println(file);
                        System.out.println(l);
                    }
                }
                return l;
            }
        }else if (dir.isFile()){
            return dir.length();
        }
        return 0;
    }

    //获取大小 优化
    public long getPathLength1(File dir){
        //求和
        long l = 0;
        //是文件夹
        if (dir != null && dir.isDirectory()){
            //遍历
            File[] files = dir.listFiles();
            //判断
            if (files != null){
                for (File file : files) {
                    l = l + getPathLength1(file);
                }
                return l;
            }
        }else if (dir.isFile()){
            return dir.length();
        }
        return 0;
    }
}
