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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

public class Test1 {

        /**
         * 根据键盘录入文件夹路径,求文件夹大小! 思路:\分两步\ 第一步: 键盘录入.
         *  
         * (方法名定义为dun ,dun对象的返回值类型是File 参数类型为空.)
         * 1.创建键盘录入对象;
         * 2.根据录入的信息进行判断;
         * 3.判断是文件夹路径时返回File的参数.
         *  第二步: 求文件夹的大小.
         * 1.创建求文件夹大小的方法.(定义方法名为fun,返回值类型是long(因为file类下的length方法返回值类型是long),参数类型是File dir类型)
         * 2.定义一个参数 len,这个参数是用来统计各个文件大小总和的.
         * 3.获取该文件夹下的所有文件夹和文件
         * 4.遍历并判断是否是文件,如果是就计算大小,并用 len记录下来.如果不是,就使用递归的思想来递归调用
         * 5.返回 len的值
         * 6.在main方法中调用这两个方法.
         */
        public static void main(String[] args) {
                // 6.在main方法中调用这两个方法.
                File dir = dun();
                System.out.println("这个文件夹大小是 " + fun(dir) + "个字节.");
        }

        // (方法名定义为dun ,dun对象的返回值类型是File 参数类型为空.)
        public static File dun() {
                // 1.创建键盘录入对象;
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个文件夹路径:");
                while (true) {
                        String line = sc.nextLine();
                        File dir = new File(line); // 创建file对象.将line的数据传进去.
                        // 2.根据录入的信息进行判断;
                        if (!dir.exists()) {
                                System.out.println("您输入的文件夹路径不存在,请输入文件夹路径:");
                        } else if (dir.isFile()) {
                                System.out.println("您输入的是文件路径,请输入文件夹路径:");
                        } else {
                                return dir;
                        }
                }
        }

        // 1.创建求文件夹大小的方法.(定义方法名为fun,返回值类型是long(因为file类下的length方法返回值类型是long),参数类型是File
        // dir类型)
        public static long fun(File dir) {
                // 定义一个参数 len,这个参数是用来统计各个文件大小总和的.
                long len = 0;
                // *3.获取该文件夹下的所有文件夹和文件
                File[] file = dir.listFiles();
                // 遍历.
                for (File file2 : file) {
                        // 4.遍历并判断是否是文件,如果是就计算大小,并用 len记录下来.
                        if (file2.isFile()) {
                                len = len + file2.length();
                        }
                        // 如果不是,就使用递归的思想来递归调用
                        else {
                                len = len + fun(file2);
                        }
                }
                // 5.返回 len的值
                return len;
        }
}

评分

参与人数 1黑马币 +20 收起 理由
506008880 + 20 山寨

查看全部评分

1 个回复

倒序浏览
鼠标右键 查看属性...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马