2019-06-02 Java学习日记 day23 递归练习

递归练习

练习一

import java.io.File;
import java.util.Scanner;

public class test1 {

    public static void main(String[] args) {
        //File dir=getDir();
        //System.out.println(getFileLength(dir));
        File dir =new File("D:\\java\\2018");
        System.out.println(dir.length());

    }
    
    public static File getDir(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个文件夹路径");
        //定义一个无线循环
        while(true){
            String line =sc.nextLine();
            File dir =new File(line);
            
            //对File对象判断
            if(!dir.exists()){
                System.out.println("你录入的文件夹路径不存在,请输入一个文件夹路径:");
            }else if (dir.isFile()) {
                System.out.println("你录入的文件路径,请输入一个文件夹路径:");
            }else {
                //将文加下路径对象返回
                return dir;
            }
        }
    }
    public static long getFileLength(File dir) {    
        //1,定义一个求和变量
        long len = 0;
        //2,获取该文件夹下所有的文件和文件夹listFiles();
        File[] subFiles = dir.listFiles();            
        //3,遍历数组
        for (File subFile : subFiles) {
            //4,判断是文件就计算大小并累加
            if(subFile.isFile()) {
                len = len + subFile.length();
            //5,判断是文件夹,递归调用
            }else {
                len = len + getFileLength(subFile);
            }
        }
        return len;
    }
}

猜你喜欢

转载自www.cnblogs.com/JungTan0113/p/10965453.html
今日推荐