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

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

  1. java 文件大小统计工具类_Java获取文件大小,文件夹内文件个数的工具类

    package cn.edu.hactcm.cfcms.utils; import java.io.File; import java.io.FileInputStream; import java. ...

  2. php过去文件夹总数,用php获取文件夹内文件的数量

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 用php获取指定文件夹内文件的数量: 用PHP读取一个文件夹内有多少个文件,例如有一个Picture文件夹,里面有200张 ...

  3. Python:获取文件夹内 文件夹 和 文件数量

    path = 'C:/Users/Dell/Desktop/test' print('dirnum:',len([lists for lists in os.listdir(path) if os.p ...

  4. python 文件操作 os 如何检索文件夹内文件数量

    参考文章1:python os获取文件夹中文件夹内文件的数量,保存为CSV文件 参考文章2:用python计算大文件夹下小文件夹里文件的个数

  5. 文件夹修改名字 matlab,matlab用 movefile更改文件夹内文件名字

    %超简单,利用matlab自带函数movefile(旧名,新名)更改文件夹内文件名字,可以是改一个或多个文件 clc clear dir1 = 'D:\workplace\新程序实验'; %选择数据所 ...

  6. JAVA-基础(查找文件夹内文件)

    JAVA-基础(查找文件夹内文件) 1.目的? 查找指定文件夹内的文件.以查询.txt结尾的文件为例. 2.分析? 目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录. 遍历目录时,获取的子文件 ...

  7. shell脚本读取文件夹内文件名称

    shell脚本读取文件夹内文件名称代码如下: 1.配置文件: readFilePath=/wocloud/soft/tomcat/selfYearAppraiseTomcat/selfYearAppr ...

  8. bat 文件夹内文件批量重命名

    文件夹内文件批量重命名,示例如下: chcp 65001 @echo off set /p w=请输入文件格式(即扩展名并以回车结束): ::set /p wf=请输入要修改的文字(以回车结束): s ...

  9. java 获取两条经纬度线段的交点坐标工具类

    java 获取两条经纬度线段的交点坐标工具类 网上有线段是否相交的判断方法,但是很少有获取线段交点的坐标的方法 我在这里整合了网上的一些相交的方法,通过相交的xy轴点返推出了经纬度. 拾取坐标系统 可 ...

最新文章

  1. 高德地图API 简单使用
  2. 新产品孕育记:PM如何把一款产品从0带到1
  3. web实现远程桌面:Apache Guacamole
  4. 系列(三)—Redis
  5. JEPaas代码((列表,表单)确认入库按钮
  6. 重复运行JUnit测试而没有循环
  7. 全国计算机民办二本学校排行,艺术类二本院校排名,2018最新民办和公办院校全国排名...
  8. puttygen.exe 生产密钥,配置SSH登陆linux服务器
  9. 骁龙神经处理引擎(Snapdragon Neural Processing Engine)
  10. 忘记Mac开机密码处理方法
  11. 淘宝双11实时数据分析项目报告
  12. ios 微信内置浏览器 缓存清理
  13. 关于skl计算机题目,系统崩溃,并且您不能更改 Windows 8.1 或 Windows Server 2012 R2 中的英特尔 SKL 平台上的 CPU 频率...
  14. 能力素质有所欠缺_表达能力至关重要
  15. Photoshop脚本 合并所有图层
  16. workers.properties配置详解
  17. 【spark】一文(10分钟)入门spark
  18. 【VScode报错】> ools-1.1.3\debugAdapters\bin\WindowsDebugLa‘--stdout=Microsoft-MIEngine-Out-aguzdga1-npu
  19. sqlmap详细教程
  20. Java14发布,16大新特性,代码更加简洁明快

热门文章

  1. opengl加载显示3D模型3MF类型文件
  2. OpenCASCADE:物理STEP文件
  3. wxWidgets:wxBitmap类用法
  4. boost::process::async_pipe相关的测试程序
  5. boost::math::owens_t用法的测试程序
  6. boost::hana::on用法的测试程序
  7. boost::geometry::detail::overlay::get_relative_order用法的测试程序
  8. Boost: 对uncaught_exceptions函数的测试
  9. DCMTK:用于DICOM数据字典的哈希表接口
  10. VTK:可视化之NoShading