【Java File类】从键盘接收一个文件夹路径,统计该文件夹大小

本文介绍如何利用Java的File类结合递归方法来统计一个文件夹的大小。递归过程中涉及边界条件、递归前进和返回段,通过递归实现方法自我调用来遍历文件夹并累加文件大小。
摘要由CSDN通过智能技术生成

  这里使用到了递归,所以介绍一下递归的使用:

一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

递归有三要素:
                  1.要有退出条件  <----------------------->   边界条件
                  2.要有分支(if..else) <-----------> 递归前进段和递归返回段
                               if(满足边界条件){
                                   //递归返回段
                               }else{
                                  //递归前进段
                               }
                  3.出现方法自己调用自己

递归,指在当前方法内调用自己的这种现象

代码如下:

package com.softeem.work;

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

//2.从键盘接收一个文件夹路径,统计该文件夹大小。



public class Work_02 {

    public static long getFileSize(File dir){
        long size = 0;
        File[] arr = dir.listFiles();
        for(int i = 0; i < 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用递归来遍历文件夹中的所有文件和子文件夹,并统计它们的个数。以下是一个示例代码: ```java import java.io.File; public class FileCounter { public static void main(String[] args) { // 读取用户输入的文件夹路径 System.out.print("请输入文件夹路径:"); String path = System.console().readLine(); // 统计文件夹和文件的个数 int folderCount = 0; int fileCount = 0; File folder = new File(path); countFiles(folder, folderCount, fileCount); // 输出统计结果 System.out.println("文件夹个数:" + folderCount); System.out.println("文件个数:" + fileCount); } public static void countFiles(File folder, int folderCount, int fileCount) { if (folder.isDirectory()) { folderCount++; // 统计文件夹个数 File[] files = folder.listFiles(); if (files != null) { for (File file : files) { countFiles(file, folderCount, fileCount); } } } else { fileCount++; // 统计文件个数 } } } ``` 在上面的代码中,我们首先读取用户输入的文件夹路径,然后定义了两个变量 `folderCount` 和 `fileCount`,分别用于统计文件夹和文件的个数。接着,我们使用 `File` 来创建一个文件夹实例,并调用 `countFiles()` 方法来统计文件夹中的文件和子文件夹个数。在 `countFiles()` 方法中,我们首先判断当前文件是否是一个文件夹,如果是,则增加文件夹个数,并递归调用 `countFiles()` 方法来遍历当前文件夹中的所有文件和子文件夹。如果当前文件不是一个文件夹,那么我们就增加文件个数。最后,在主方法中输出统计结果。 注意:上述代码并没有处理异常情况,如输入的路径不存在或者无法访问等情况。在实际开发中,还需要对这些异常情况进行适当的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值