packagecom.example.tt.utils;

importandroid.util.Log;

importjava.io.File;

importjava.io.FileInputStream;

importjava.text.DecimalFormat;

/**

* Created by Administrator on 2017/11/20.

*/

public classFileSizeUtil {

public static final intSIZETYPE_B=1;//获取文件大小单位为B的double值

public static final intSIZETYPE_KB=2;//获取文件大小单位为KB的double值

public static final intSIZETYPE_MB=3;//获取文件大小单位为MB的double值

public static final intSIZETYPE_GB=4;//获取文件大小单位为GB的double值

/**

* 获取文件指定文件的指定单位的大小

*@paramfilePath文件路径

*@paramsizeType获取大小的类型1为B、2为KB、3为MB、4为GB

*@returndouble值的大小

*/

public static doublegetFileOrFilesSize(String filePath,intsizeType){

File file=newFile(filePath);

longblockSize=0;

try{

if(file.isDirectory()){

blockSize =getFileSizes(file);

}else{

blockSize =getFileSize(file);

}

}catch(Exception e) {

e.printStackTrace();

Log.e("获取文件大小","获取失败!");

}

returnFormetFileSize(blockSize, sizeType);

}

/**

* 调用此方法自动计算指定文件或指定文件夹的大小

*@paramfilePath文件路径

*@return计算好的带B、KB、MB、GB的字符串

*/

public staticString getAutoFileOrFilesSize(String filePath){

File file=newFile(filePath);

longblockSize=0;

try{

if(file.isDirectory()){

blockSize =getFileSizes(file);

}else{

blockSize =getFileSize(file);

}

}catch(Exception e) {

e.printStackTrace();

Log.e("获取文件大小","获取失败!");

}

returnFormetFileSize(blockSize);

}

/**

* 获取指定文件大小

*@return

*@throwsException

*/

private static longgetFileSize(File file)throwsException

{

longsize =0;

if(file.exists()){

FileInputStream fis =null;

fis =newFileInputStream(file);

size = fis.available();

}

else{

file.createNewFile();

Log.e("获取文件大小","文件不存在!");

}

returnsize;

}

/**

* 获取指定文件夹

*@paramf

*@return

*@throwsException

*/

private static longgetFileSizes(File f)throwsException

{

longsize =0;

File flist[] = f.listFiles();

for(inti =0; i < flist.length; i++){

if(flist[i].isDirectory()){

size = size +getFileSizes(flist[i]);

}

else{

size =size +getFileSize(flist[i]);

}

}

returnsize;

}

/**

* 转换文件大小

*@paramfileS

*@return

*/

private staticString FormetFileSize(longfileS)

{

DecimalFormat df =newDecimalFormat("#.00");

String fileSizeString ="";

String wrongSize="0B";

if(fileS==0){

returnwrongSize;

}

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";

}

returnfileSizeString;

}

/**

* 转换文件大小,指定转换的类型

*@paramfileS

*@paramsizeType

*@return

*/

private static doubleFormetFileSize(longfileS,intsizeType)

{

DecimalFormat df =newDecimalFormat("#.00");

doublefileSizeLong =0;

switch(sizeType) {

caseSIZETYPE_B:

fileSizeLong=Double.valueOf(df.format((double) fileS));

break;

caseSIZETYPE_KB:

fileSizeLong=Double.valueOf(df.format((double) fileS /1024));

break;

caseSIZETYPE_MB:

fileSizeLong=Double.valueOf(df.format((double) fileS /1048576));

break;

caseSIZETYPE_GB:

fileSizeLong=Double.valueOf(df.format((double) fileS /1073741824));

break;

default:

break;

}

returnfileSizeLong;

}

}

更多相关文章

  1. 获取amlogic源码
  2. android获取app的版本信息
  3. android获取手机存储状态
  4. java 获取当前所有线程的两种方法 group和map
  5. Layout的编写
  6. Android使用getIdentifier()获取资源Id
  7. Android(安卓)深入理解Android中的自定义属性
  8. android 如何使用spinner来实现选择省份和市区功能
  9. Android下SD卡文件操作与数据读写

随机推荐

  1. 【Android适配问题集锦-音频类】当Androi
  2. Android插件开发初探——基础篇
  3. Android中Textview和图片同行显示(文字超
  4. 【Android】说做就做:带图标的list item
  5. 侧边栏(使用Support Library 4提供的扩展
  6. 旅行的青蛙Unity游戏逆向修改Android&iOS
  7. 如何成功在android设备上连接pc端共享的
  8. Android(安卓)8.0刘海屏适配
  9. Android内核开发:从源码树中删除出厂的app
  10. 给Android的应用换个图标(桌面快捷图标)sSh