`

用Java 计算一个文件夹以及子文件夹在内的总大小

    博客分类:
  • Java
阅读更多

应对文件夹内还可能有子文件夹的问题,我们使用递归的方法来解决,每次遇到一个文件则返回文件的大小,如果遇到一个文件夹,则用file.listFiles()来获取其目录下的所有文件和子目录,递归计算他们的大小,再将总大小返回

 

package filetest;

import java.io.*;

/**
 * 文件处理
 * @author weidong
 *
 */
public class FileEdit {

	double size = 0.0;

	/**
	 * 计算文件或者文件夹的大小 ,单位 MB
	 * @param file 要计算的文件或者文件夹 , 类型:java.io.File
	 * @return 大小,单位:MB
	 */
	public double getSize(File file) {
		//判断文件是否存在
		if (file.exists()) {
			//如果是目录则递归计算其内容的总大小,如果是文件则直接返回其大小
			if (!file.isFile()) {
				//获取文件大小
				File[] fl = file.listFiles();
				double ss = 0;
				for (File f : fl)
					ss += getSize(f);
				return ss;
			} else {
				double ss = (double) file.length() / 1024 / 1024;
				System.out.println(file.getName() + " : " + ss + "MB");
				return ss;
			}
		} else {
			System.out.println("文件或者文件夹不存在,请检查路径是否正确!");
			return 0.0;
		}
	}

	public static void main(String[] args) throws IOException {
		FileEdit fd = new FileEdit();
		double all = fd.getSize(new File("f:\\电影"));
		System.out.println("ALL:  " + all + "MB");

	}
}

分享到:
评论
3 楼 sp42 2015-08-16  
不客气地收下啦 谢谢
2 楼 RookieDong 2011-10-30  
effort_fan 写道
谢谢,很有用,借鉴了

不用客气啦,自己的代码能帮到别人,我也很高兴。欢迎讨论哈
1 楼 effort_fan 2011-10-28  
谢谢,很有用,借鉴了

相关推荐

    安胜任意文文件夹加密系统

    在当前数字化社会中,个人信息安全已经成为一个不容忽视的问题,而《安胜任意文文件夹加密系统》以其高效、便捷、安全的特点,为用户筑起了一道坚固的数据保护屏障。无论是日常的文件管理,还是特殊的隐私保护需求,...

    ewebeditor中net文件夹下java源文件

    3. **MyEclipse**:MyEclipse是一款强大的Java EE集成开发环境,它支持包括Java在内的多种编程语言,并提供对Web应用、数据库和企业级应用的开发支持。在MyEclipse中,源代码是必要的,因为它能帮助开发者调试代码、...

    文件夹复制

    文件夹复制是指将一个或多个文件夹及其内部的所有子文件和子文件夹完整地复制到另一个位置。这个过程可以是本地磁盘间的操作,也可以涉及网络驱动器或者云存储。复制过程中,原始文件夹的结构和内容会被完全保留,...

    总程序的eclipse文件夹

    "总程序的eclipse文件夹"这个标题表明我们正在处理一个包含整个项目结构的Eclipse工作空间,这可能是一个包含了源代码、配置文件、依赖库等在内的完整开发项目。 描述中提到“上面代码没办法直接复制编译通过,由于...

    java+Swing打包成exe可安装文件

    - 创建一个专门的资源文件夹,用于存放程序运行所需的外部资源,如数据库文件、图片、声音文件等。 - 将JRE(Java Runtime Environment)也放入该文件夹中,以便后续打包时能够将其包含在内。 2. **打包Java程序...

    Java遍历输出指定目录、树形结构所有文件包括子目录下的文件

    在Java编程中,遍历和输出指定目录以及其树形结构下的所有文件,包括子目录中的文件,是一项常见的任务。这个任务通常涉及到文件系统操作和递归算法的应用。以下将详细解释如何使用Java来实现这一功能。 首先,我们...

    基于Java语言的中生源LIMS系统后端设计源码

    blade-auth、blade-gateway、blade-ops、blade-service等文件夹或文件名暗示了系统可能采用了微服务架构,其中每个blade可能对应一个特定的微服务,以实现系统的模块化和服务的独立部署。 该项目的开发背景很可能是...

    基于Java开发的一款基于Netty的内网穿透工具,主要用于将内网服务反向代理到公网访问.zip

    标题中的“基于Java开发的一款基于Netty的内网穿透工具”揭示了我们正在讨论的是一个使用Java编程语言,并且依赖于Netty框架的软件应用。Netty是一个高性能、异步事件驱动的网络应用程序框架,常用于开发服务器和...

    java编写的类QQ的QicQ聊天软件(内网使用)

    Java编写的QICQ聊天软件是一款基于...总的来说,这款Java编写的QICQ聊天软件融合了Java语言的核心特性、网络编程技术、多线程处理、数据传输和用户界面设计等多个方面的知识,构建了一个适用于内网环境的即时通讯工具。

    Java通过Exchange协议发送和接收邮件

    首先,JavaMail API是一个开源的Java库,它允许开发人员编写能够发送和接收邮件的应用程序。然而,JavaMail API并不直接支持Exchange服务器,因此在与Exchange服务器交互时,我们需要借助EWS Java API。微软官方提供...

    多线程全面遍历磁盘文件

    2. **划分工作区域**:将磁盘分区或目录树划分成多个独立的区域,每个区域分配给一个线程处理。可以按照磁盘扇区、文件夹层次或者文件大小来划分。 3. **线程同步**:由于磁盘文件可能被多个线程同时访问,所以需要...

    java游戏demo.zip

    总的来说,"java游戏demo.zip"提供了一个实践性的平台,无论是对于学习Java编程还是游戏开发的初学者,或者是寻找灵感的专业开发者,都可以从中受益。通过对项目的解压、运行和代码阅读,我们可以深入理解Java在游戏...

    Delphi.rar_AES_AES加密_delphi AES加密_delphi 加解密_java delphi aes

    对于Java平台,Java Cryptography Extension (JCE) 是一个标准的Java API,提供了包括AES在内的多种加密算法。Java中的AES加密同样有多种工作模式可供选择,并且JCE也提供了易于使用的API来实现这些操作。为了实现...

    java file upload BLOB

    - 准备一个 SQL 插入语句,其中包含了多个字段,包括一个名为 `JPGUPLOAD` 的 BLOB 字段。 - 使用 `PreparedStatement` 设置参数值,对于 BLOB 类型的字段,使用 `setBlob` 方法设置为空的 BLOB 对象。 - 最后,...

    java开发实战1200例 (第I卷)源码

    在这个压缩包中,我们可以期待找到一系列独立的Java程序,每个都对应一个特定的编程概念或技术。这些例子可能包括基本的数据类型、控制流程(如if语句、for循环、while循环)、类与对象(封装、继承、多态)、异常...

    基于Java的视频点播系统设计源码

    基于Java的视频点播系统设计源码项目,不仅为开发者提供了一个实际的案例来学习和理解视频点播系统的工作原理,同时也为那些需要构建视频分发平台的开发者提供了一个可参考和扩展的代码基础。开发者可以通过分析源码...

    小程序完整demo:飞翔的小鸟:canvas实现,java后端(适用1221).zip微信小程序模板源码

    该压缩包文件“小程序完整demo:飞翔的小鸟:canvas实现,java后端(适用1221).zip”包含了一个微信小程序的完整示例,名为“飞翔的小鸟”,它使用了HTML5的Canvas技术和Java后端来构建。这个项目不仅展示了如何在...

    java会议室预约系统.zip

    会议室预约系统:基于Java语言和MySQL数据库。开发工具使用IDEA。 本项目是我为我们学校经管学院开发的会议室预约系统,基于SSM框架,权限管理使用Shiro框架。用户权限分为普通用户和管理员。普通用户可以申请会议室...

    Java-毕向东学习笔记

    2. **JAVA_HOME变量**:为了避免频繁修改`PATH`变量,可以创建一个名为`JAVA_HOME`的环境变量,指向JDK的安装目录。然后,在`PATH`变量中引用`%JAVA_HOME%\bin`即可。 ##### 临时环境变量配置 1. **使用`set`命令*...

    简易的用图形把eclipsejava项目打包成jar在打包成.exe

    打开exe4j,用户首先需创建一个新的项目,然后选择“Java Application”类型。接下来,指定JAR文件的位置以及主类,这与使用fatJar插件时类似。exe4j提供了丰富的配置选项,包括但不限于添加JRE、设定最低JRE版本、...

Global site tag (gtag.js) - Google Analytics