获取文件及文件夹下所有文件的大小

java;gutter:true; package com.ksource.common.util;</p> <p>import java.io.File; import java.math.BigDecimal;</p> <p>/*<em> * @Author dxy * @Date 2022/7/21 10:13 * @Description </em>/ public class FileSizeUtil {</p> <pre><code>public static String getPrintSize(long size) { double sizeDou = (double) size; //如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义 if (size < 1024) { return String.valueOf(size) + "B"; } else { sizeDou = size / 1024d; BigDecimal bigDecimal = new BigDecimal(sizeDou); sizeDou = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } //如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位 //因为还没有到达要使用另一个单位的时候 //接下去以此类推 if (sizeDou < 1024d) { return String.valueOf(sizeDou) + "KB"; } else { sizeDou = sizeDou / 1024d; BigDecimal bigDecimal = new BigDecimal(sizeDou); sizeDou = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } if (sizeDou < 1024d) { //因为如果以MB为单位的话,要保留最后1位小数, //因此,把此数乘以100之后再取余 return String.valueOf(sizeDou) + "MB"; } else { //否则如果要以GB为单位的,先除于1024再作同样的处理 sizeDou = sizeDou / 1024d; BigDecimal bigDecimal = new BigDecimal(sizeDou); sizeDou = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return String.valueOf(sizeDou) + "GB"; } } //创建方法获取指定文件夹下的文件大小并将其打印出来,参数为文件夹绝对路径,返回值文件的大小 public static long getFileSize(File file){ //创建文件对象 if (file.exists() && file.isDirectory()){//文件夹存在 // 获取文件夹的文件的集合 File[] files = file.listFiles(); long count = 0; //用来保存文件的长度 for (File f : files){ //遍历文件集合 if (f.isFile()){ //如果是文件 count += f.length();//计算文件的长度 } else { count += getFileSize(f);//递归调用 } } return count; }else { System.out.println("您查询的文件夹有误"); return 0; } } </code></pre> <p>}

Original: https://www.cnblogs.com/henuyuxiang/p/16501150.html
Author: 岁月淡忘了谁
Title: 获取文件及文件夹下所有文件的大小

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551859/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 介绍一个”牛逼闪闪”开源库:ja-netfilter

    上来先说点题外话,很多人最新私信我说我的开源项目 IDE Eval Resetter不好用了。我就问他为什么不好用了,不好编译了吗?他说不是,是不能在IDE上重置了。我心说,这是个…

    技术杂谈 2023年5月31日
    0146
  • Linus:“我删除了Linux,因为它就是个垃圾”

    1月 25日, Linus Torvalds 在 Linux 的 GitHub 仓库中提交了一个恶作剧 README页面,其备注名为《delete linux because it…

    技术杂谈 2023年7月11日
    059
  • 在海思芯片上使用GDB远程调试

    使用海思平台上(编译工具链:arm-himix200-linux)交叉编译 GDB 工具(使用版本8.2,之前用过10.2的版本,在编译 gdbserver 遇到编译出错的问题,因…

    技术杂谈 2023年7月25日
    088
  • es之7:elastic search partial update

    PUT /index/type/id,创建文档&替换文档,就是一样的语法 1、查询更新全量方式 一般对应到应用程序中,每次的执行流程基本是这样的:(1)应用程序先发起一个g…

    技术杂谈 2023年5月30日
    065
  • .net自动摘要等算法HanLP.net

    参考资料: 在CSharp中调用HanLP 目前自动摘要算法似乎没有.net 版本,而以java,python 居多 自动摘要算法一般使用textrank算法 比如java开源的:…

    技术杂谈 2023年7月24日
    080
  • Linux 7安装Mysql5.7版本

    Mysql 5.7的安装搭建 首先去到官方网站的下载链接中找到对应你Linux服务器版本的mysql软件包 https://dev.mysql.com/downloads/repo…

    技术杂谈 2023年6月21日
    099
  • 为博客园文章添加 “分享到Teams”按钮

    概要:在博客园的博客页面底部增加”分享到Teams”的按钮 作者:陈希章 来源:《Microsoft Teams 平台完全手册》 网址:https://te…

    技术杂谈 2023年5月31日
    071
  • netstat 命令

    a 表示所有 n 表示不查询dns t 表示tcp协议 u 表示udp协议 p 表示查询占用的程序 l 表示查询正在监听的程序 netstat -nupl (UDP类型的端口) n…

    技术杂谈 2023年5月30日
    076
  • Transformer学习

    模型结构 Encoder Encoder是有N=6层的一个整体。是这6层按顺序走下来的一个整体。每层有两个子层。分别是多头自注意力和全连接前馈网络。对于每个子层,先采用残差连接,后…

    技术杂谈 2023年6月21日
    095
  • Bash 脚本实例:获取符号链接的目标位置

    我们都熟悉 Linux 中的符号链接,通常称为符号链接或软链接,符号链接是指向任何文件系统中的另一个文件或目录的特定文件。 本文将介绍 Linux 中符号链接的基础知识,并创建一个…

    技术杂谈 2023年5月31日
    075
  • java学习之spirng的aop

    AOP技术 什么是AOP技术:在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一…

    技术杂谈 2023年6月21日
    085
  • 手把手教你用JAVA调用Websocket实现“声音转换”功能(变声)标贝科技

    手把手教你用JAVA调用Websocket实现”声音转换”功能(变声)标贝科技 前言 什么是声音转换?基于深度学习和迁移学习技术,精准将原说话人的声音转换为…

    技术杂谈 2023年7月25日
    060
  • HTTP缓存

    posted @2022-06-15 20:28 放飞梦想C 阅读(18 ) 评论() 编辑 Original: https://www.cnblogs.com/chengmf/p…

    技术杂谈 2023年7月24日
    069
  • 《大画汽车:图解汽车奥秘》—— 读书笔记

    ​ —— 图片来自绿洲·AE86 —— 本书是看过最浅显易懂的汽车书了,从汽车发展的历史,讲到发动机、变速箱等重要组件,从汽车行驶到安全,最后介绍了汽车的设计与制造流程,整体对汽车…

    技术杂谈 2023年5月30日
    093
  • elasticsearch

    一、什么是Elasticsearch? Lucene是一套用于 全文检索和 搜寻的 开源程序库,由Apache软件基金会支持和提供 Lucene提供了一个简单却强大的应用程序接口(…

    技术杂谈 2023年7月10日
    044
  • 小熊飞桨练习册-01手写数字识别

    文件说明 文件 说明 train.py 训练程序 test.py 测试程序 report.py 报表程序 onekey.sh 一键获取数据到 dataset 目录下 get-dat…

    技术杂谈 2023年7月23日
    071
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球