package com.spider.reader.common.tool;
import java.io.File;
import java.io.FileInputStream;
import java.text.DecimalFormat;
public class GetFileSize {
/**
* 取得文件大小
* @param file
* @return
* @throws Exception
*/
public static int getFileSize(File file) throws Exception {
int s = 0;
if (file.exists()) {
FileInputStream fis = null;
fis = new FileInputStream(file);
s = fis.available();
}
return s;
}
// 递归
public static long getFileSizes(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;
}
/**
* 转换文件大小
*
* @param fileS
* @return
*/
public static String FormetFileSize(long fileS) {
DecimalFormat df = new DecimalFormat("#.##");
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 static 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 String getSize(String filepath) {
String size = "0";
try {
long l = 0;
File ff = new File(filepath);
if (ff.isDirectory()) {
l = getFileSizes(ff);
} else {
l = getFileSize(ff);
}
size = FormetFileSize(l);
} catch (Exception e) {
e.printStackTrace();
}
return size;
}
/**
* 删除文件下的内容
*
* @param path
* @return
*/
public static boolean delAllFile(String filePath) {
boolean flag = false;
File file = new File(filePath);
if (!file.exists()) {
return flag;
}
if (!file.isDirectory()) {
return flag;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (filePath.endsWith(File.separator)) {
temp = new File(filePath + tempList[i]);
} else {
temp = new File(filePath + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
/** 先删除文件夹里面的文件 **/
delAllFile(filePath + "/" + tempList[i]);
/** 再删除空文件夹 **/
delFolder(filePath + "/" + tempList[i]);
flag = true;
}
}
return flag;
}
/**
* 删除整个文件夹
*
* @param filePath
*/
public static void delFolder(String filePath) {
try {
/** 删除完里面所有内容 **/
delAllFile(filePath);
File myFilePath = new File(filePath.toString());
/** 删除空文件夹 **/
myFilePath.delete();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
String zipSize = GetFileSize.getSize("D:/Tomcat6.0/webapps/midpui2.0/srcFile/4570-89672.zip");
System.out.println(FormetFileSize(12));
System.out.println(zipSize);
}
}