获取目录大小和文件个数的工具类



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

public class DirSizeInformation
{
	

	private String path = null;
	public static final int KB_SIZE = 1024;
	public static final int MB_SIZE = 1024 * KB_SIZE;
	public static final int GB_SIZE = 1024 * MB_SIZE;
	
	/**
	 * @param path
	 */
	public DirSizeInformation(String path) {
		
		super();
		this.path = path;
	}
	
    public long getFileSizes(File f) throws Exception{
    	
        long lfilesize = 0;
        
        if (f.exists()) {
            FileInputStream fis = null;
            fis = new FileInputStream(f);
            lfilesize= fis.available();
            fis.close();
        } else {
            return 0;
        }
        
        return lfilesize;
    }

    public long getDirSize(File f)throws Exception
    {
    	
    	if (this.path == null) {
			return 0;
		}
    	
        long dirsize = 0;
        File flist[] = f.listFiles();
        
        for (int i = 0; i < flist.length; i++)
        {
            if (flist[i].isDirectory())
            {
                dirsize = dirsize + getDirSize(flist[i]);
            } else
            {
                dirsize = dirsize + flist[i].length();
            }
        }
        
        return dirsize;
    }

    public String FormetFileSize(long fileS) {
    	
        DecimalFormat df = new DecimalFormat("#.00");
        String fileSizeString = "";
        
        if (fileS < DirSizeInformation.KB_SIZE) {
            fileSizeString = df.format((double) fileS) + "B";
        } else if (fileS < DirSizeInformation.MB_SIZE) {
            fileSizeString = df.format((double) fileS / DirSizeInformation.KB_SIZE) + "K";
        } else if (fileS < DirSizeInformation.GB_SIZE) {
            fileSizeString = df.format((double) fileS / DirSizeInformation.MB_SIZE) + "M";
        } else {
            fileSizeString = df.format((double) fileS / DirSizeInformation.GB_SIZE) + "G";
        }
        
        return fileSizeString;
    }
   
    public long getfilesnumber(File f){
        
    	long filenum = 0;
        File flist[] = f.listFiles();
        filenum = flist.length;
        
        for (int i = 0; i < flist.length; i++) {
            if (flist[i].isDirectory()) {
            	filenum = filenum + getfilesnumber(flist[i]);
            	filenum--;
            }
        }
        
        return filenum;
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值