package coolbuy360.service; import java.io.File; import java.text.DecimalFormat; import java.io.FileInputStream; public class FileServiceSize { private static FileServiceSize instance; public FileServiceSize() { } /** * ���õ���ģʽ����� * @return */ public static FileServiceSize getInstance() { if (instance == null) { instance = new FileServiceSize(); } return instance; } /**��ȡ�ļ���С * @param f * �ļ�ʵ�� * @return * �����ļ���С */ 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; } /** * ��ȡ�ļ��д�С * @param file Fileʵ�� * @return long ��λΪM * @throws Exception */ public static long getFolderSize(File file)throws Exception{ long size = 0; File[] fileList = file.listFiles(); for (int i = 0; i < fileList.length; i++) { if (fileList[i].isDirectory()) { size = size + getFolderSize(fileList[i]); } else { size = size + fileList[i].length(); } } //return size/1048576; return size; } /*** ת���ļ���С��λ(b/kb/mb/gb) ***/ /**����һ��������ת��������ĵ�λ * @param fileS * �ļ����ֽ��� * @return * ���ش���λ���ַ��� */ public static String FormetFileSize(long fileS) {// ת���ļ���С if(fileS==0){ return "0KB"; } 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) + "KB"; } else if (fileS < 1073741824) { fileSizeString = df.format((double) fileS / 1048576) + "MB"; } else { fileSizeString = df.format((double) fileS / 1073741824) + "GB"; } return fileSizeString; } /*** ��ȡ�ļ����� *@param * File�ļ�ʵ�� * @return * �����ļ����� */ 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; } }