Java获取文件大小,文件夹内文件个数的工具类

简介: package cn.edu.hactcm.cfcms.utils;import java.io.File;import java.io.FileInputStream;import java.text.DecimalFormat;/** * CFMS    :Computer files management system   * version :1.0 2013-3-2 下午03:3

package cn.edu.hactcm.cfcms.utils;

import java.io.File;
import java.io.FileInputStream;
import java.text.DecimalFormat;
/**

 * CFMS    :Computer files management system 
 * version :1.0 2013-3-2 下午03:33:07
 */
public class FileInfoUtils {

 /**
  * 获得文件类型(文件后缀),要么是文件夹,要么是文件后缀
  *
  * @param path
  * @return
  */
 public static String getFileSuffix(String path) {
  File file = new File(path);
  String info = null;
  if (file.isFile()) {
   info = path.substring(path.lastIndexOf(".") + 1, path.length())
     + "文件";
  }
  if (file.isDirectory()) {
   info = "文件夹";
  }
  return info;
 }

 /**
  * 获得文件的大小
  *
  * @param path
  * @return
  */
 public static long getFileSize(String path) {
  File f = new File(path);
  long size = 0;
  try {
   if (f.exists()) {
    if (f.isDirectory()) {
     File flist[] = f.listFiles();
     for (int i = 0; i < flist.length; i++) {
      size = size + getFileSize(flist[i].getPath());
     }
    } else {
     FileInputStream fis = null;
     fis = new FileInputStream(f);
     size = fis.available();
    }
   } else {
    f.createNewFile();
    System.out.println("文件不存在");
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return size;
 }

 /**
  * 转换文件的大小以B,KB,M,G等计算
  *
  * @param fileS
  * @return
  */
 public static String FormetFileSize(long fileS) {// 转换文件大小
  DecimalFormat df = new DecimalFormat("#.000");
  String fileSizeString = "";
  if (fileS < 1024) {
   fileSizeString = df.format((double) fileS) + "B";
  } else if (fileS < 1048576) {
   fileSizeString = df.format((double) fileS / 1024) + "K";
  } else if (fileS < 1073741824) {
   fileSizeString = df.format((double) fileS / 1048576) + "M";
  } else {
   fileSizeString = df.format((double) fileS / 1073741824) + "G";
  }
  return fileSizeString;
 }
 
 /**
  * 判断选择的是什么类型的单位,并返回该单位代表的Byte值
  * @param unit
  * @return
  */
 public static long judgeUnit(String unit){
  Long value;
  if (unit.equals("B")) {
   value = 1L;
  } else if (unit.equals("K")) {
   value = 1024L;
  } else if (unit.equals("M")) {
   value = 1048576L;
  } else {
   value = 1073741824L;
  }
  return value;
 }
 
 // 获得文件夹内文件的个数。
 public static long getFileSize(File f) {
  long size = 0;
  File flist[] = f.listFiles();
  for (int i = 0; i < flist.length; i++) {
   if (flist[i].isDirectory()) {
    size = size + getFileSize(flist[i]);
   } else {
    size = size + flist[i].length();
   }
  }
  return size;
 }
}

目录
相关文章
|
30天前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
127 1
|
4月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
108 0
|
4月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
257 0
|
4月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
240 14
|
5月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
439 5
|
5月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
298 0
|
8月前
|
人工智能 JSON Java
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
240 0
|
8月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现