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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.heima.zuoye;

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

public class Zuoye1 {

        /**
         * (1)从键盘接收一个文件夹路径,统计该文件夹大小
         *
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
                File dir = getDir();
                System.out.println(digui(dir));
               
        }

        public static long digui(File dir) {
                //定义一个long的变量
                long len = 0;
                // 获取到该文件夹所有的文件和文件夹,储存在listFiles数组中
                File[] subfFiles = dir.listFiles();
                // 遍历每个数组
                for (File subFile : subfFiles) {
                        if (subFile.isFile())  {
                                len = len + subFile.length();
                                // 如果是文件夹,就用递归调用
                        } else {
                                //将文件的大小进行累加
                                len = len + digui(subFile);
                        }
                }
                return len;
        }


        public static File getDir() {
                // 创建键盘目录对象
                Scanner sc = new Scanner(System.in);
                // 提示
                System.out.println("请输入一个文件夹路径:");
                // 判断此录入的是否是文件夹路径
                while (true) {
                        // 将键盘录入储存在line中
                        String line = sc.nextLine();
                        // 封装成File对象,并对其进行判断
                        File dir = new File(line);
                        if (!dir.exists()) {
                                System.out.println("您录入的不是文件夹路径,请重新录入:");
                        } else if (dir.isFile()) {
                                System.out.println("您录入的是文件路径,请重新录入");
                        } else {
                                System.out.println("输入正确,请稍等...");
                                return dir;
                        }
                }
        }

}


评分

参与人数 1黑马币 +7 收起 理由
F305176 + 7 赞一个!

查看全部评分

10 个回复

倒序浏览
这个算是基础题了,最好把那个复制文件夹并且更改后缀名的程序敲熟,那个是面试题里面对IO流操作比较综合的一个题,加油
回复 使用道具 举报
写的是什么鬼
回复 使用道具 举报
carrykhu 来自手机 中级黑马 2016-4-7 16:49:52
板凳
我很快就看得懂了
回复 使用道具 举报
oassuperhan 发表于 2016-4-7 12:41
这个算是基础题了,最好把那个复制文件夹并且更改后缀名的程序敲熟,那个是面试题里面对IO流操作比较综合的 ...

恩恩!一起加油!!!
回复 使用道具 举报
666,赞一个
回复 使用道具 举报
加油`~~~~~~
回复 使用道具 举报
oassuperhan 发表于 2016-4-7 12:41
这个算是基础题了,最好把那个复制文件夹并且更改后缀名的程序敲熟,那个是面试题里面对IO流操作比较综合的 ...

谢谢!我会的.
回复 使用道具 举报
加油吧,多敲敲代码就会熟练很多
回复 使用道具 举报
666,赞一个
回复 使用道具 举报
加油吧,兄弟
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马