首页 > 编程语言 >Java递归计算一个文件夹所有文件大小

Java递归计算一个文件夹所有文件大小

时间:2024-03-20 20:59:16浏览次数:19  
标签:文件大小 dirFile System num 递归计算 File Java subFile public

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

public class Demo1 {

    public static void main(String[] args) {
        File dirFile = getDirFile();
        System.out.println(countDirFile(dirFile));
    }

    /**
     * 计算文件夹大小
     */
    public static long countDirFile(File dirFile) {
        long num = 0L;
        File[] listFiles = dirFile.listFiles();
        for (File subFile : listFiles) {
            if (subFile.isFile()) {
                num = num + subFile.length();
            } else {
                num = num + countDirFile(subFile);
            }
        }
        return num;
    }

    /**
     * 获取文件夹路径
     */
    public static File getDirFile() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入文件路径");
        while (true) {
            String line = scanner.nextLine();
            File dirFile = new File(line);
            if (dirFile.isDirectory()) {
                return dirFile;
            } else {
                System.out.println("输入错误,重新输入");
            }
        }
    }
}

  

标签:文件大小,dirFile,System,num,递归计算,File,Java,subFile,public
From: https://www.cnblogs.com/Big-Boss/p/18086049

相关文章

  • java毕业设计基于微信小程序的中药调理系统
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着现代生活节奏的加快,人们对于健康问题越来越关注。在众多保健方式中,中药以其独特的调理作用和较少的副作用受到广泛欢迎。然而,中药的种类繁多,配方复杂,普通人往......
  • 归并排序算法 java实现
    publicstaticvoidmain(String[]args){int[]arr={9,5,7,3,1,6,8,4,2};mergeSort(arr,0,arr.length-1);}/***归并排序*注意:归并的拆分数组和合并数组是从左到右依次进行的,网上很多文章都是错误的*并不是左右一起拆分,网上很多文章都是这样的......
  • Java中String类型的创建与比较(详解)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、String类型是什么??二、String类型的创建使用字符串字面量使用new关键字intern()方法简读图解String的比较总结前言提示:这里可以添加本文要记录的大概内容:在背八股文(Holis版)的过程中遇......
  • Java 越来越卷,掌握哪些知识才有机会进大厂?来看各个大厂AI 大模型怎么说?
    通义千问(阿里)在当前竞争激烈的Java开发市场中,为了增加进大厂和获得更好职业发展的机会,Java开发者应关注以下几个核心知识点与技能:基础扎实:•熟练掌握Java基础语法、面向对象设计原则、集合框架、多线程并发编程、异常处理机制等基础知识。•对JVM内存模型、垃圾回......
  • java基础的项目
    334,零钱通   思路:(1)先完成显示菜单,并可以选择菜单,给出对应提示(2)完成零钱通明细,简单的话可以使用String拼接(3)完成收益入账  完成功能驱动程序员增加新的变化和代码(4)消费(5)退出(6)用户输入4退出时,给出提示"你确定要退出吗?y/n",必须输入正确的y/n,否则循环输入指令,直到......
  • (day 13)JavaScript学习笔记(对象1)
    概述        这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。    今天学习对象,主要是创建对象、对象属性、省略key、遍历对象属性、删......
  • JavaScript中的“==“和“===“运算符的区别
    JavaScript中的比较运算符"=="和"==="用于比较两个值是否相等。尽管它们的目的相同,但它们在比较过程中采用了不同的策略1.“==”相等运算符:"=="运算符执行一种松散相等比较,它在比较之前会进行类型转换。如果进行比较的两个值类型不同,JavaScript会尝试将它们......
  • x == (x = y) 与 (x = y) == x 不同?【Java 面试题】
    x==(x=y)与(x=y)==x不同?classQuirky{publicstaticvoidmain(String[]args){intx=1;inty=3;System.out.println(x==(x=y));//falsex=1;//resetSystem.out.println((x=y)==x);//......
  • java中的抽象类不能被实例化,那为什么还有构造方法
    java中的抽象类不能被实例化,那为什么还有构造方法java中的类必须要有构造方法(无参和/或有参)(没有的话编译不过);如果没有显示定义,那编译器会默认给该类创建一个无参构造方法抽象类如果能实例化,那被实例化的这个对象就可以调用该类中定义的所有方法(包括抽象方法),但是抽象方法......
  • java 继承(中)
    前面我们已经说明了什么是继承?继承的好处弊端等,不清楚的可参照链接java继承(上)-CSDN博客本篇文章主要理解super和this的区别及联系。1、super本章节主要说明怎么访问方法内的变量,类内的成员变量,父类的成员变量,下面先看代码实现。1.1代码实现(1)Fu类的代码实现publiccla......