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;
}
}
获取目录大小和文件个数的工具类
最新推荐文章于 2022-02-27 09:36:19 发布