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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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


}
//键盘录入一个文件夹,判断该文件夹
public static File getDir() {
  //创建键盘录入对象
  Scanner sc = new Scanner(System.in);
  System.out.println("请录入一个文件夹路径");
  //定以一个无限循环
  while(true) {
   String line = sc.nextLine();
   //将录入的字符串封装成一个File对象
   File dir = new File(line);
   //判断文件夹并返回
   if (!dir.exists()) {
    System.out.println("该文件夹路径不存在,请重新录入");
   
   }else if(dir.isFile()){
    System.out.println("输入的是一个文件路径,请输入一个文件夹路径");
   
   
   }else {
    return dir;
   
   }
   
   
  }
  
}
public static long getFileLength(File dir) {
  //定义一个求和变量
  long len = 0;
  //获取文件中所有的文件或文件夹
  File[] subFiles = dir.listFiles();
  //遍历
  
  for (File subFile : subFiles) {
   //如果是文件获取文件的长度
   if (subFile.isFile()) {
    len = len +subFile.length();
   }//如果是文件夹,递归调用获取文件
   else if (subFile.isDirectory()) {
    len = len + getFileLength(subFile);
   
   }
   
   }
  return len;
}


2 个回复

倒序浏览
学习学习
回复 使用道具 举报
学习,学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马