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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    通过键盘录入一个文件夹路径,并判断他的大小,关于这个还有没有其他的写法啊?
    马上就要点招了,感觉自己学的挺渣的,怎么办啊.........突然有种肯定过不了点招的感觉,噶虐这两天挺累的


package com.LianXi;

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

public class Demo_DiGui {

    /**
     * @param args
     */
    public static void main(String[] args) {
        File dir=demo();
        System.out.println(getFileLength(dir));

    }
    /*
     * 从键盘获得一个文件夹路径,并统计他的大小
     *
     *
     * 从键盘获取文件夹路径
     * */

    private static File demo() {
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        //设定一个死循环
        while(true){
            //温馨提示:
            System.out.println("请输入文件夹路径");
            //创建File对象存储键盘录入的文件夹路径
            File f=new File(sc.nextLine());
            if(!f.exists()){            //!f.exists是判断f这个File对象存储的路径存在吗?
                System.out.println("您输入的文件夹路径不存在,请重新输入");//如果不存在就读取这句话
            }else if(f.isFile()){            //f.isFile是判断f中存储的是文件路径,
                System.out.println("您输入的是文件路径,请重新输入文件夹路径");//如果是就读取这句话
            }else{
               
                return f;//然后上面的两个条件都不成立了,这个路径的确是文件夹路径,的确存在,然后就将f返回
            }
        }
    }
    /*统计该文件夹文件的大小
     * */
    public static long getFileLength(File f){
        //写一个long类型的变量
        long len=0;
        //创建一个File数组,将传进来的文件夹的每一个文件的路径都作为一个元素存储进去
        File [] subFile=f.listFiles();
        //高级for循环遍历将这个文件夹中的每一个文件的路径都遍历一下
        for (File sF : subFile) {
            //如果这个路径是文件的话
            if(sF.isFile()){
                len=len+sF.length();//将这个文件的字节长度加起来
                //判断是否是文件夹,通过递归调用
            }else{    //如果是文件夹,那么就通过递归调用将他的每一个子文件的大小取出来和len相加
                len=len+getFileLength(sF);
            }
        }
        return len;//返回len
        
    }

}


评分

参与人数 3黑马币 +25 收起 理由
z940505 + 6 淡定
朱万方 + 9 很给力!
一个人走天下 + 10

查看全部评分

6 个回复

正序浏览
Camwly 中级黑马 2015-11-27 09:33:20
7#
有前途啊
回复 使用道具 举报
终于找到这个题目了,谢谢了
回复 使用道具 举报
顶一个,不容易啊
回复 使用道具 举报
一个人走天下 发表于 2015-11-25 22:54
顶一个,兄弟,一看你就是上可不听讲
好好学习吧,白富美等着你呢...

谢啦,哥们!
回复 使用道具 举报
顶一个,兄弟,一看你就是上可不听讲
好好学习吧,白富美等着你呢...
回复 使用道具 举报
有人没有,写的不好,求给点分
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马