A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.test2;

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

public class Test3 {

        /**
         * @param args
         * 3,从键盘接收一个文件夹路径,统计该文件夹大小
         */
        public static void main(String[] args) {
                File dir = getDir();
                System.out.println(getFileLen(dir));
        }
       
        public static long getFileLen(File dir) {               
                File[] subFiles = dir.listFiles();                                //获取到dir路径下的所有的文件夹和文件
                long len = 0;               
                for (File subFile : subFiles) {                                        //遍历数组
                        if(subFile.isFile()) {                                                //如果是文件
                                len = len + subFile.length();                        //计算文件的大小累加
                        }else {                                                                                //否则
                                len = len + getFileLen(subFile);                //递归调用方法,计算文件夹的大小
                        }
                }
                return len;
        }
       
        public static File getDir() {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个文件夹路径:");
                while(true) {
                        String line = sc.nextLine();
                        File dir = new File(line);
                        if(!dir.exists()) {
                                System.out.println("您输入文件夹路径不存在,请重新输入一个文件夹路径:");
                        }else if(dir.isFile()) {
                                System.out.println("您输入的是文件路径,请重新输入一个文件夹路径:");
                        }else {
                                return dir;
                        }
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马