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 ...
随机推荐
- Codeforces Round #299 (Div. 1)C. Tavas and Pashmaks (凸壳)
C. Tavas and Pashmaks Tavas is a cheerleader in the new sports competition named "Pashmaks&qu ...
- 关于java中private构造函数的问题
首先推荐以下下面的一篇博客: http://blog.csdn.net/my_dream_fly/article/details/3857887 本来也比较好奇,自己写构造函数总是定义public形式 ...
- CSS常用操作-对齐
index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- phpstorm + xdebug 配置
PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 把php-xdebug.dll复制到xamapp/php/ext目录下,打开php.ini配置如下参数 [xdebug] zend_e ...
- JavaScript 去除数组重复成员
[...new Set(array)] 运用 Set结构不会添加重复的值 和...解构 function dedupe(array) { return Array.from(new Set(array ...
- 关于使用axis调用webservice接口方法
1.概述: 我们有时候会调用webserviec接口,我们向接口发送请求参数,从接口接收返回值. 2.形式: package client; import org.apache.axis.client ...
- Qt读取JSON和XML数据
QJSON JSON(JavaScript Object Notation)是一个轻量级的数据交换格式; 可以将数据以name/value的形式任意组合; QJson 是一个基于Qt的库, 将JSON ...
- MFC原创:三层架构01(人事管理系统)DAL
VC++/MFC Window编程原创教程文件夹 C++课程设计来着.但还没学过数据,也还没理解过三层架构,就把这个作业深化点来做了.尽管要做的这个人事管理系统看起来是挺简单的,无非就是处理员工信息. ...
- 【BUG】Kewastunpackstats(): Bad Magic 1 (0x。。。。, 0)
Kewastunpackstats(): Bad Magic 1 (0x1108f7b87, 0) In Alert Logfile After Upgrading to 11.2.0.1 Appli ...
- swift 实现漂亮的粒子效果CAEmitterLayer
一些粒子效果 我们经常会在一些游戏或者应用中看到一些炫酷的粒子效果,我们在iOS中也能很轻松的搞一些粒子效果 我们本次做得是一个下雪的效果,看下效果图 源码地址: https://github.com ...