android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
public class FileSizeUtil { public static final int SIZETYPE_B = 1;//获取文件大小单位为B的double值 public static final int SIZETYPE_KB = 2;//获取文件大小单位为KB的double值 public static final int SIZETYPE_MB = 3;//获取文件大小单位为MB的double值 public static final int SIZETYPE_GB = 4;//获取文件大小单位为GB的double值 /** * 获取文件指定文件的指定单位的大小 * @param filePath 文件路径 * @param sizeType 获取大小的类型1为B、2为KB、3为MB、4为GB * @return double值的大小 */ public static double getFileOrFilesSize(String filePath,int sizeType){ File file=new File(filePath); long blockSize=0; try { if(file.isDirectory()){ blockSize = getFileSizes(file); }else{ blockSize = getFileSize(file); } } catch (Exception e) { e.printStackTrace(); Log.e("获取文件大小","获取失败!"); } return FormetFileSize(blockSize, sizeType); } /** * 调用此方法自动计算指定文件或指定文件夹的大小 * @param filePath 文件路径 * @return 计算好的带B、KB、MB、GB的字符串 */ public static String getAutoFileOrFilesSize(String filePath){ File file=new File(filePath); long blockSize=0; try { if(file.isDirectory()){ blockSize = getFileSizes(file); }else{ blockSize = getFileSize(file); } } catch (Exception e) { e.printStackTrace(); Log.e("获取文件大小","获取失败!"); } return FormetFileSize(blockSize); } /** * 获取指定文件大小 * @param f * @return * @throws Exception */ private static long getFileSize(File file) throws Exception { long size = 0;  if (file.exists()){  FileInputStream fis = null;  fis = new FileInputStream(file);  size = fis.available();  }  else{  file.createNewFile();  Log.e("获取文件大小","文件不存在!");  }  return size; }   /** * 获取指定文件夹 * @param f * @return * @throws Exception */ private 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 + getFileSizes(flist[i]); } else{ size =size + getFileSize(flist[i]); } } return size; } /**  * 转换文件大小  * @param fileS  * @return  */ private static String FormetFileSize(long fileS) { DecimalFormat df = new DecimalFormat("#.00"); String fileSizeString = ""; String wrongSize="0B"; if(fileS==0){ return wrongSize; } 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 fileS   * @param sizeType   * @return  */ private static double FormetFileSize(long fileS,int sizeType) { DecimalFormat df = new DecimalFormat("#.00"); double fileSizeLong = 0; switch (sizeType) { case SIZETYPE_B: fileSizeLong=Double.valueOf(df.format((double) fileS)); break; case SIZETYPE_KB: fileSizeLong=Double.valueOf(df.format((double) fileS / 1024)); break; case SIZETYPE_MB: fileSizeLong=Double.valueOf(df.format((double) fileS / 1048576)); break; case SIZETYPE_GB: fileSizeLong=Double.valueOf(df.format((double) fileS / 1073741824)); break; default: break; } return fileSizeLong; }

更多相关文章

  1. Android 文件保存与读取
  2. 技巧: 如何安装apk文件在android仿真器中
  3. Android 根文件系统分析(1)
  4. [android] 保存文件到手机内存
  5. Android 将APK文件安装到AVD中并分析其界面结构
  6. 移动开发:fb的-app.xml文件
  7. android中的单位
  8. android 使用AsyncHttpClient框架上传文件以及使用HttpURLConnec
  9. Android 文件的上传

随机推荐

  1. Android(安卓)RecyclerView 子条目(item)嵌
  2. Mac os Android(安卓)源码开发环境搭建
  3. android定时器
  4. Android中一个app启动另一个app的指定act
  5. android截屏
  6. Android图形解锁的绘制
  7. android ListView滑动到顶部带弹性效果
  8. Fragment 在Android(安卓)SDK1.6上实现
  9. android viewpager+fragment与利用viewpa
  10. android LocalActivityManager说明