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; 
 } 
  
  
 |   
        
 
    
    
    
     
 
 |