01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | package com.demo.file; import java.io.File; import java.text.DecimalFormat; import java.io.FileInputStream; public class GetFileSizeUtil { private static GetFileSizeUtil instance; public GetFileSizeUtil() { } public static GetFileSizeUtil getInstance() { if (instance == null ) { instance = new GetFileSizeUtil(); } return instance; } /*** 获取文件大小 ***/ 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; } /*** 转换文件大小单位(b/kb/mb/gb) ***/ 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; } } |
联系客服