package com.file.util;

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

public class FileUtil {
	public long getFileSizes(File f) throws Exception {// 取得文件大小
		long s = 0;
		if (f.exists()) {
			FileInputStream fis = null;
			fis = new FileInputStream(f);
			s = fis.available();
		} else {
			f.createNewFile();
			System.out.println("文件不存在");
		}
		return s;
	}

	// 递归
	public long getFileSize(File f) throws Exception// 取得文件夹大小
	{
		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;
	}

	public String FormetFileSize(long fileS) {// 转换文件大小
		DecimalFormat df = new DecimalFormat("#.00");
		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;
	}

	public long getlist(File f) {// 递归求取目录文件个数
		long size = 0;
		File flist[] = f.listFiles();
		size = flist.length;
		for (int i = 0; i < flist.length; i++) {
			if (flist[i].isDirectory()) {
				size = size + getlist(flist[i]);
				size--;
			}
		}
		return size;

	}

	public static void main(String args[]) {
		FileUtil g = new FileUtil();
		long startTime = System.currentTimeMillis();
		try {
			long l = 0;
			String path = "F:\\muwen.jpg";
			File ff = new File(path);
			if (ff.isDirectory()) { // 如果路径是文件夹的时候
				System.out.println("文件个数           " + g.getlist(ff));
				System.out.println("目录");
				l = g.getFileSize(ff);
				System.out.println(path + "目录的大小为:" + g.FormetFileSize(l));
			} else {
				System.out.println("     文件个数           1");
				System.out.println("文件");
				l = g.getFileSizes(ff);
				System.out.println(path + "文件的大小为:" + g.FormetFileSize(l));
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
		long endTime = System.currentTimeMillis();
		System.out.println("总共花费时间为:" + (endTime - startTime) + "毫秒...");
	}
}
最近下载更多
xiex909  LV27 2022年3月31日
johnlhr  LV4 2021年9月20日
1342674328  LV1 2020年6月9日
王晓波  LV16 2018年11月25日
z924931408  LV25 2018年6月6日
故事_sun  LV26 2018年5月25日
guo123456789  LV1 2017年10月14日
fzlzxc  LV10 2017年7月28日
spencer97  LV15 2015年12月23日
331105870  LV2 2015年11月26日
最近浏览更多
Small CN  LV7 2023年1月12日
lsq54365  LV14 2022年9月8日
yymmdm  LV6 2022年8月10日
1719863922  LV11 2022年7月4日
xiex909  LV27 2022年3月31日
sswert  LV2 2022年3月8日
423256321  LV4 2021年12月27日
skd666  LV8 2021年11月21日
johnlhr  LV4 2021年9月20日
oranges  LV3 2021年7月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友