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 文件大小统计工具类_Java获取文件大小,文件夹内文件个数的工具类相关推荐

  1. 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. java 去掉文件名后缀名_java 获取文件名(不包括文件的后缀)和文件重命名

    获取文件名(不包括后缀) originalFileName.substring(0, originalFileName.lastIndexOf(".")) 文件重命名 public ...

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

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

  5. linux 循环显示所有的sh.*文件.,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法...

    环境: Ubuntu下采用shell脚本实现 案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为 ...

  6. linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...

    本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧. 环境: Ubuntu下采用s ...

  7. java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...

    package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要 ...

  8. SFTP获取文件夹内的文件名,文件大小,文件修改时间

    SFTP获取文件夹内的文件名,文件大小,文件修改时间 使用SFTP协议获取服务上的指定路径的文件夹下的所有文件名,文件大小,文件的修改时时间等. 工具类 import java.io.File; im ...

  9. python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小

    python 实现统计ftp服务器指定目录下文件夹数目.文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏. 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类 ...

最新文章

  1. Hibernate5-多对一双向关联-fetch=select,lazy=proxy,在一的一方的class标签中添加
  2. Go 语言编程 — gormigrate GORM 的数据库迁移助手
  3. Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议
  4. 查看linux内存存储空间不足,Linux 下判断Server 内存是否不足
  5. boost::hana::replicate用法的测试程序
  6. 如何退出_农民退出的宅基地如何利用?农村宅基地征收如何补偿?
  7. C#枚举、值、字符串的相互转换
  8. java学习(154):文件复制
  9. 0基础lua学习(二十)Lua单例
  10. (pytorch-深度学习系列)模型参数的初始化与访问操作-学习笔记
  11. 模型评价(一) AUC大法 混淆矩阵
  12. 学习webpack前的准备工作
  13. 《流浪地球》高赞好评被收买改差评?豆瓣如此回应...
  14. rhel与aix中,fsck -f的区别
  15. IIS网站设置禁止IP访问设置方法
  16. C的|、||、、、异或、~、!运算
  17. 区块链+各行业应用案例
  18. 89C51单片机内部结构深度解析
  19. 带宽下载速度单位换算
  20. ​在Windows 10 下安装 Vmware 时遇到的问题和解决​方法

热门文章

  1. C语言---初识递归///看了这么久的递归,终于会用了~~
  2. java 生成枚举_为什么编译器在Java中生成Enums?
  3. app测试-兼容性测试与云测试技术
  4. 异常处理汇总-服务器系列
  5. 杜绝网上压根没测过就乱写之 《oracle mybatis 返回自增主键 》
  6. 软件测试方法之白盒测试与黑盒测试
  7. 不同浏览器对回车提交表单的处理办法(转载)
  8. 优化LibreOffice如此简单
  9. 多学一点(五)——在Linux下安装配置Apache
  10. xcode 证书生成、加载