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 ...
随机推荐
- Windows服务器Pyton辅助运维--03.安装Visual Studio 的 Python 开发插件 PTVS
PTVS (Python Tools for Visual Studio) http://pytools.codeplex.com/ 当前版本:2.1 RC PTVS (Python Tools fo ...
- MySQL慢查询(一) - 开启慢查询
一.简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 二.参数说明 slow_query_log 慢查询开启状态slow_q ...
- 转义字符和ASCII
一.字符(char) 数字(int) 屏幕显示 '\n' 10 换行 '\0' ...
- android之字体阴影效果
今天刚刚好做了个字体阴影的效果,感觉加上了阴影的效果立体感十足啊!写了个简单的demo与大家分享下!主要是以下四个属性 android:shadowColor 阴影的颜色 android:shad ...
- WinXP 无线提示“区域中找不到无线网络”的一种可能原因!
貌似WinXP还是无限经典,我也一直还在用,不知道哪天才会放弃.这次遇见的问题,或许也有XP爱好者也遇得见,记下点文字备忘.----------------------- 单调的切割线 ------- ...
- 基于bootstrap的datatable控件
https://editor.datatables.net/release/DataTables/extras/Editor/examples/bootstrap.htmlhttps://github ...
- MongoDB Connector for Hadoop
MongoDB Connector for Hadoop https://github.com/mongodb/mongo-hadoop Purpose The MongoDB Connector f ...
- Intellj IDEA 启动参数调优
(修改前记得备份) 修改IntellJ/bin/idea.exe.vmoptions修改成 -Xms512m -Xmx512m -Xmn164m -XX:MaxPermSize=250m -XX:Re ...
- Pythn中的super用法
在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: 代码如下: class A: def __init__(self): p ...
- Android WifiDirect学习(一)
WiFi Direct基本介绍 Wi-Fi Direct标准允许无线网络中的设备无需通过无线路由器即可相互连接.与蓝牙技术类似,这种标准允许无线设备以点对点形式互连,不过在传输速度与传输距离方面则比蓝 ...