• 统计文件夹的大小


    import java.io.File;
    import java.util.Scanner;
    
    public class Test1 {
    
       /**
    
        * 
    
        * @param args
        * 
        *            需求:1,从键盘接收一个文件夹路径,统计该文件夹大小
        * 
        *            从键盘接收一个文件夹路径
        * 
        *            1,创建键盘录入对象
        * 
        *            2,定义一个无限循环
        * 
        *            3,将键盘录入的结果存储并封装成File对象
        * 
        *            4,对File对象判断
        * 
        *            5,将文件夹路径对象返回
        * 
        *            统计该文件夹大小
        * 
        *            1,定义一个求和变量
        * 
        *            2,获取该文件夹下所有的文件和文件夹listFiles();
        * 
        *            3,遍历数组
        * 
        *            4,判断是文件就计算大小并累加
        * 
        *            5,判断是文件夹,递归调用
        */
    
       public static void main(String[] args) {
    
          // File dir = new File("F:\day06");
    
          // System.out.println(dir.length()); //直接获取文件夹的结果是0
    
          File dir = getDir();
    
          System.out.println(getFileLength(dir));
    
        }
    
       /*
        * 
        * 从键盘接收一个文件夹路径
        * 
        * 1,返回值类型File
        * 
        * 2,参数列表无
        */
    
       public static File getDir() {
    
          // 1,创建键盘录入对象
    
          Scanner sc = new Scanner(System.in);
    
          System.out.println("请输入一个文件夹路径:");
    
          // 2,定义一个无限循环
    
          while (true) {
    
             // 3,将键盘录入的结果存储并封装成File对象
    
             String line = sc.nextLine();
             File dir = new File(line);
             // 4,对File对象判断
              if (!dir.exists()) {
                System.out.println("您录入的文件夹路径不存在,请输入一个文件夹路径:");
    
             } else if (dir.isFile()) {
    
                System.out.println("您录入的是文件路径,请输入一个文件夹路径:");
             } else {
    
                 // 5,将文件夹路径对象返回
                return dir;
    
             }
    
          }
    
       }
    
       /*
    
        * 
        * 统计该文件夹大小
        * 
        * 1,返回值类型long
        *
        * 2,参数列表File dir
    
        */
    
     
    
       public static long getFileLength(File dir) { // dir = F:day06day07
    
     
    
          // 1,定义一个求和变量
     
          long len = 0;
           // 2,获取该文件夹下所有的文件和文件夹listFiles();
    
           File[] subFiles = dir.listFiles(); // day07 Demo1_Student.class
    
                                      // Demo1_Student.java
    
           // 3,遍历数组
     
          for (File subFile : subFiles) {
    
              // 4,判断是文件就计算大小并累加
    
              if (subFile.isFile()) {
     
                len = len + subFile.length();
    
                // 5,判断是文件夹,递归调用
    
              } else {
    
                 len = len + getFileLength(subFile);
    
              }
          }
          return len;
    
        }
    }
    
  • 相关阅读:
    sping AOP核心思想及实现原理
    springmvc RequestMappingHandlerMapping初始化详解
    springmvc RequestMappingHandlerAdapter初始化详解
    POJ 3169 Layout
    POJ 3264
    POJ 3461 Oulipo
    二分图判定 POJ-2492
    最小生成树 prim算法
    初级BFS
    哈夫曼建树
  • 原文地址:https://www.cnblogs.com/loaderman/p/6411294.html
Copyright © 2020-2023  润新知