Android 获取文件大小
android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
FileSizeUtil
public class FileSizeUtil {
public static final int SIZETYPE_B = ;//获取文件大小单位为B的double值
public static final int SIZETYPE_KB = ;//获取文件大小单位为KB的double值
public static final int SIZETYPE_MB = ;//获取文件大小单位为MB的double值
public static final int SIZETYPE_GB = ;//获取文件大小单位为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=;
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=;
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 = ;
 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 = ;
File flist[] = f.listFiles();
for (int i = ; 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==){
return wrongSize;
}
if (fileS < ){
fileSizeString = df.format((double) fileS) + "B";
 }
else if (fileS < ){
fileSizeString = df.format((double) fileS / ) + "KB";
}
else if (fileS < ){
    fileSizeString = df.format((double) fileS / ) + "MB";
  }
else{
    fileSizeString = df.format((double) fileS / ) + "GB";
  }
return fileSizeString;
}
/**
 * 转换文件大小,指定转换的类型
 * @param fileS
 * @param sizeType
 * @return
 */
private static double FormetFileSize(long fileS,int sizeType)
{
DecimalFormat df = new DecimalFormat("#.00");
double fileSizeLong = ;
switch (sizeType) {
case SIZETYPE_B:
fileSizeLong=Double.valueOf(df.format((double) fileS));
break;
case SIZETYPE_KB:
fileSizeLong=Double.valueOf(df.format((double) fileS / ));
break;
case SIZETYPE_MB:
fileSizeLong=Double.valueOf(df.format((double) fileS / ));
break;
case SIZETYPE_GB:
fileSizeLong=Double.valueOf(df.format((double) fileS / ));
break;
default:
break;
}
return fileSizeLong;
}
Android 获取文件大小的更多相关文章
- android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
		android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位 public class FileSizeUtil { public static final int SIZETYPE_B ... 
- Android获取 应用程序大小,数据大小,缓存大小
		在项目中创建,android.content.pm 包名.里面创建两个aidl文件.PackageStats.aidl 和 IPackageStatsObserver.aidl. PackageSt ... 
- 客户端用javascript获取文件大小
		客户端用javascript获取文件大小 1 ie实现代码如下: <script type="text/javascript" language="javascri ... 
- Android获取内置sdcard跟外置sdcard路径
		Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有文 ... 
- python获取文件大小
		python获取文件大小 # !/usr/bin/python3.4 # -*- coding: utf-8 -*- import os # 字节bytes转化kb\m\g def formatSiz ... 
- ios  NSFileManager和NSFileHandle(附:获取文件大小 )
		转自 http://blog.csdn.net/zhibudefeng/article/details/7795946 //file 文件操作 NSFileManager 常见的NSFileMana ... 
- Android获取系统时间方法的总结
		Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar ... 
- Android获取屏幕宽和高
		android获取屏幕的高度和宽度用到WindowManager这个类,两种方法: 1.WindowManager wm = (WindowManager) getContext() ... 
- C/C++多种方法获取文件大小(转)
		源码下载:点击下载 源码如下: #include <iostream> #include <io.h> #include <sys\stat.h> #include ... 
随机推荐
- HDU5196--DZY Loves Inversions  树状数组  逆序数
			题意查询给定[L, R]区间内 逆序对数 ==k的子区间的个数. 我们只需要求出 子区间小于等于k的个数和小于等于k-1的个数,然后相减就得出答案了. 对于i(1≤i≤n),我们计算ri表示[i,ri ... 
- JDBC连接mysql编程
			基本操作 package jdbc; import java.sql.Statement; import java.util.Scanner; import java.sql.Connection; ... 
- Raid1源代码分析--写流程
			正确写流程的总体步骤是,raid1接收上层的写bio,申请一个r1_bio结构,将其中的所有bios[]指向该bio.假设盘阵中有N块盘.然后克隆N份上层的bio结构,并分别将每个bios[]指向克隆 ... 
- 大型分布式C++框架《一:框架简介》
			首先名字要取得霸气才能吸引人气,哈哈~~ 下面简单介绍下情况.框架是腾讯电商平台的分布式框架.虽然腾讯拍拍已经玩完了.但是这套框架还是很不错的.而且据原腾讯同事说微信也是用的这套框架.源码肯定是不能说 ... 
- css和js引用图片的路径问题
			原文转自:http://www.cnblogs.com/azumia/archive/2012/06/17/2552346.html 在JS文件中书写相对路径:JS文件是指在页面中引用的外部JavaS ... 
- Css背景
			index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ... 
- Highcharts 时间序列,可缩放的图表
			配置 图表 配置可缩放图表. chart.zoomType 指定了用户可以拖放的尺寸,用户可以通过拖动鼠标来放大,可能值是x,y或xy: var chart = { zoomType: 'x' }; ... 
- (转)鸟哥SHELL入门材料
			http://blog.chinaunix.net/space.php?uid=9809038&do=blog&cuid=62903 经典入门材料! 学习 Shell Scripts ... 
- 解析Xcode把应用程序打包成ipa---解决打包完新版本itunes提示不是有效应用程序的问题
			Xcode把应用程序打包成ipa是本文要介绍的内容,不多说,先俩看内容.注意:本方法需要先制作假凭证编译于项目中,否则产生的ipa还是无法于iPhone中运行. 制作方法请参考: http://blo ... 
- TTTAttributedLabel使用介绍(转)
			TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel 可以实现电话 地址 链接自动查找显示 ... 
