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;
 }
}

目录
相关文章
|
27天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
66 9
|
28天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
66 2
|
7天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
63 34
|
24天前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
39 3
|
28天前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
1月前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
56 2
|
1月前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
47 4
|
Java
Java 获取文件大小
import java.io.File; public class FileSize { public static long getFileSize(String fileName){ File file = new File(fileName); if (!file.
1770 0
|
2天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
24 6