转自:
应对文件夹内还可能有子文件夹的问题,我们使用递归的方法来解决,每次遇到一个文件则返回文件的大小,如果遇到一个文件夹,则用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");
}
}
分享到:
相关推荐
快速多线程磁盘遍历。优化遍历算法,快速遍历,包括隐藏文件和系统文件在内的全部文件
主要介绍了Java遍历输出指定目录、树形结构下的所有文件包括子目录中的文件,需要的朋友可以参考下
会议室预约系统:基于Java语言和MySQL数据库。开发工具使用IDEA。 本项目是我为我们学校经管学院开发的会议室预约系统,基于SSM框架,权限管理使用Shiro框架。用户权限分为普通用户和管理员。普通用户可以申请会议室...
2:给数据库添加online列 使用(数据库脚本包含在内)HashMap+HttpSessionListener, 对于非正常退出 可在 浏览器 unload 时 使用 AJAX 实现(简单的很,大家自己写吧)NOTE:解压缩后 文件夹内还有两个压缩包,压缩包...
这是C#和Java之间的一个小项目中的代码比较 文件夹中的.txt文件仅用于测试目的,因为DiffMerge或Winmerge 喜欢具有相同的文件扩展名以列出文件之间的差异。 检查.pdf文件是否存在差异。 如果您对源代码和项目文件感...
cs原始java CS-180 一个很棒的对初学者友好的仓库,可以帮助您进行开源...如果要使用此存储库中未提供的其他某种语言推送代码,请使用语言名称创建一个单独的文件夹,然后再推送它。 慕尼黑啤酒节快乐 :grinning_face:
一个基本的命令行Java程序,用于搜索Twitter和发布Tweet。 程序运行时,将提示用户输入其“消费者密钥”和“消费者秘密”。 之后,将向用户提供来自Twitter的身份验证URL,以获取AccessToken PIN。 用户输入此PIN,...
例如,如果扩展项目工作空间下有一个图像子文件夹: ![功能X](images / feature-x.png) 提示:许多流行的扩展程序都使用动画。 这是炫耀您的扩展程序的绝佳方法! 我们建议您使用简短易懂的短动画。要求如果您有...
Init.java 使用用户名:virtualbank 和密码:virtualadmin 创建一个 virtualBank 用户RUN:将 Driver.java 类作为 java 应用程序运行我们已经开始处理 jsp 文件(也包括在内)。 所以这个项目是一个Java Web ...
包含4.2m个Java源代码的大型数据集,以及来自代码搜索和代码摘要研究的描述并行数据。 这是代码的公开发布,其论文的数据名为“ CoDesc:大型代码描述并行数据集”,已提交给ACL,2021年。 目录 快速开始 # clone ...
计数 递归计算当前目录中给定文件扩展名的文件数以匹配。 ...注意: .git等隐藏目录中的任何文件都不会被计算在内。 去做 添加从目录遍历中排除某些文件夹的功能。 例如,不应计算node_modules内的
jTessBoxEditor是一个用于Tesseract OCR的字体编辑器与训练器,可以编辑Tesseract 2.0x和3.0x格式的字体数据,并全自动完成Tesseract训练。它能读取包括多页TIFF在内的常见图像格式,运行该程序需要Java运行环境7或...
中级Java 该存储库包含旨在帮助您继续学习该语言的中级Java程序。... 每个文件夹包含几个与该Java特定领域有关的程序。 这些程序的设计旨在帮助您了解事物的工作方式,外观以及如何自己编写代码。
2. 在集合类中使用一个预定义的集合。 (2) throw 语句用于发出在程序执行期间出现反常情况(异常)的信号。throw 语句的形式为: throw [expression]; expression :异常对象。当在 catch 子句中再次引发当前异常...
当一个系统调用想给用户反馈错误信息时,它应该返回-1(而不是在内核内抛出一个异常!)。否则,系统调用应该返回在test/syscall.h文件中列出的合适的值。 当任何进程开始时,它的文件描述符0和1必须是指向标准输入...
4、本项目运行后会产生日志文件,因此部署的jar文件应存放于一个文件夹下 二、后台服务接口开发相关说明 1、使用Java8开发,项目部署时应先配置好Java8环境 2、项目使用swagger管理接口文档,前端开发人员只需查看...
请为代码提及专有名称使用相同语言的相同代码的重复性拉取请求将不计算在内如果要使用此存储库中未提供的其他某种语言推送代码,请使用语言名称创建一个单独的文件夹,然后再推送它。慕尼黑啤酒节快乐 :grinning_...
QCRI ARAbic高级工具(QATARA)是一个统计标记器,词性,命名实体,性别和数字标注器以及使用条件随机场(CRF ++)训练的Diacritizer的库。 CRF已用于在其他NLP任务之间分割/标记数据。 下载 卡塔尔图书馆。 最新...
java版s源码Gradle 快照插件 从源代码控制管理 (SCM) 工具生成构建元数据的插件。 快照插件被认为是功能完整的。 它依赖于Gradle 1.6或更高版本的插件 API,并与 Gradle 2.0兼容。 请报告错误并在页面上建议新功能。...
上的一个 shell 模拟 ——Windows 和 Mac 上都能使用压缩软件 ——音乐播放器 ——同步软件 ——基于 Gists 开源代码片段管理 ——免费的 Mac 软件卸载软件 ——Mac 上的播放软件 ——当前文件夹开启 Shell 模拟器 ...