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. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. [Android] 获取Android设备的唯一识别码|设备号|序号|UUID
  3. Android(安卓)Studio 默认keystore 以及自定义keystore
  4. Android获取已安装应用信息(图标,名称,版本号,包)
  5. Android获取CPU使用率的几种方式
  6. Android(安卓)Scroll分析(一)
  7. Android(安卓)获取手机上图片和视频的缩略图 Android(安卓)thumb
  8. Android(安卓)Emulator 模拟器使用方法
  9. android获取sdk更新

随机推荐

  1. android 网络判断
  2. Android(安卓)屏幕滑动事件
  3. 卸载android应用程序
  4. AJAX 自学练习 无刷新提交并修改数据库数
  5. jsp 文件上传浏览,支持ie6,ie7,ie8
  6. JSP application(return String)用法详例
  7. 【北亚服务器数据恢复】raid5崩溃导致同
  8. php实现简单四则运算器
  9. PHP中的输出echo、print、printf、sprint
  10. php如何实现数据库的备份和恢复