前言
好记性不如烂笔头
正文
存在单位转换
/**
* 磁盘单位转换
*
* @param size
* @return
*/
public static String unitConversion(long size) {
long kb = 1024;
long mb = kb << 10;
long gb = mb << 10;
if (size >= gb) {
return String.format("%.1f GB", (float) size / gb);
} else if (size >= mb) {
float f = (float) size / mb;
return String.format(f > 100 ? "%.0f MB" : "%.1f MB", f);
} else if (size >= kb) {
float f = (float) size / kb;
return String.format(f > 100 ? "%.0f KB" : "%.1f KB", f);
} else {
return String.format("%d B", size);
}
android SDK < 2.3
/**
* 文件系统上可用的空闲块的数量
*
* @param path
* @return
*/
public static long getAvailSize(String path) {
if (TextUtils.isEmpty(path)) {
return -1;
}
try {
StatFs statFs = new StatFs(path);
if (null != statFs) {
return statFs.getBlockSizeLong() * statFs.getAvailableBlocksLong();
}
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
/**
* 文件系统上空闲的块总数,包括预留块
*
* @param path
* @return
*/
public static long getFreeSize(String path) {
if (TextUtils.isEmpty(path)) {
return -1;
}
try {
StatFs statFs = new StatFs(path);
if (null != statFs) {
return statFs.getBlockSizeLong() * statFs.getFreeBlocksLong();
}
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
/**
* @param path
* @return
*/
public static long getTotalSize(String path) {
if (TextUtils.isEmpty(path)) {
return -1;
}
try {
StatFs statFs = new StatFs(path);
if (null != statFs) {
return statFs.getBlockSizeLong() * statFs.getBlockCountLong();
}
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
android SDK > 2.3
/**
* @param path
* @return
*/
public static long getAvailSize2(String path) {
if (TextUtils.isEmpty(path)) {
return -1;
}
try {
File dir = new File(path);
return dir.getUsableSpace();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
/**
* @param path
* @return
*/
public static long getFreeSize2(String path) {
if (TextUtils.isEmpty(path)) {
return -1;
}
try {
File dir = new File(path);
return dir.getFreeSpace();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
/**
* @param path
* @return
*/
public static long getTotalSize2(String path) {
if (TextUtils.isEmpty(path)) {
return -1;
}
try {
File dir = new File(path);
return dir.getTotalSpace();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
