最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android查看文件夾大小以及刪除文件夾的工具類

 更新時(shí)間:2018年06月01日 15:07:52   作者:獨(dú)在黑夜看湖面  
這篇文章主要介紹了Android查看文件夾大小以及刪除文件夾的工具類,Android計(jì)算文件夾大小和刪除目錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在開發(fā)中當(dāng)程序發(fā)生ANR或者異常,我們會將信息存在本地,然后上傳服務(wù)器,這樣可以實(shí)時(shí)去發(fā)現(xiàn)問題修改問題。

那我們需要獲取文件之后需要對文件進(jìn)行刪除等操作,下面是寫的一個(gè)工具類,用于查看文件夾大小以及刪除文件夾。

import android.text.TextUtils;

import java.io.File;
import java.math.BigDecimal;


public class StorageCleanUtils {

 /**
  * 獲取文件夾大小(遞歸)
  *
  * @param file File實(shí)例
  * @return long
  */
 public static long getFolderSize(java.io.File file) {

  long size = 0;
  try {
   java.io.File[] fileList = file.listFiles();
   for (int i = 0; i < fileList.length; i++) {
    if (fileList[i].isDirectory()) {
     size = size + getFolderSize(fileList[i]);

    } else {
     size = size + fileList[i].length();

    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return size;
 }


 /**
  * 獲取當(dāng)前文件夾大小,不遞歸子文件夾
  *
  * @param file
  * @return
  */
 public static long getCurrentFolderSize(File file) {
  long size = 0;
  try {
   java.io.File[] fileList = file.listFiles();
   for (int i = 0; i < fileList.length; i++) {
    if (fileList[i].isDirectory()) {
     //跳過子文件夾

    } else {
     size = size + fileList[i].length();

    }
   }
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return size;
 }


 /**
  * 刪除指定目錄下文件及目錄
  *
  * @param deleteThisPath
  * @param filePath
  * @return 
  */
 public static boolean deleteFolderFile(String filePath, boolean deleteThisPath) {
  if (!TextUtils.isEmpty(filePath)) {
   try {
    File file = new File(filePath);
    if (file.isDirectory()) {// 處理目錄
     File files[] = file.listFiles();
     for (int i = 0; i < files.length; i++) {
      deleteFolderFile(files[i].getAbsolutePath(), true);
     }
    }
    if (deleteThisPath) {
     if (!file.isDirectory()) {// 如果是文件,刪除
      file.delete();
     } else {// 目錄
      if (file.listFiles().length == 0) {// 目錄下沒有文件或者目錄,刪除
       file.delete();
      }
     }
    }
    return true;
   } catch (Exception e) {
    e.printStackTrace();
    return false;
   }
  }
  return false;
 }


 /**
  * 刪除指定目錄下文件
  *
  * @param filePath
  * @return
  */
 public static void deleteFile(String filePath) {
  if (!TextUtils.isEmpty(filePath)) {
   try {
    File file = new File(filePath);
    java.io.File[] fileList = file.listFiles();
    for (int i = 0; i < fileList.length; i++) {
     if (!fileList[i].isDirectory()) {
      fileList[i].delete();
     }
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 }


 /**
  * 格式化單位
  *
  * @param size
  * @return
  */
 public static String getFormatSize(double size) {
  double kiloByte = size / 1024;
  if (kiloByte < 1) {
   return size + "Byte(s)";
  }

  double megaByte = kiloByte / 1024;
  if (megaByte < 1) {
   BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));
   return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";
  }

  double gigaByte = megaByte / 1024;
  if (gigaByte < 1) {
   BigDecimal result2 = new BigDecimal(Double.toString(megaByte));
   return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";
  }

  double teraBytes = gigaByte / 1024;
  if (teraBytes < 1) {
   BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));
   return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";
  }
  BigDecimal result4 = new BigDecimal(teraBytes);
  return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB";
 }

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android?gradient?使用小結(jié)

    Android?gradient?使用小結(jié)

    在Android中使用gradient(漸變)通常是通過drawable文件來設(shè)置背景,下面是可以直接用的幾種用法匯總,包括線性漸變、徑向漸變、掃描漸變(sweep)等,感興趣的朋友一起看看吧
    2025-04-04
  • Android實(shí)現(xiàn)圖片異步加載及本地緩存

    Android實(shí)現(xiàn)圖片異步加載及本地緩存

    這篇文章主要介紹了Android實(shí)現(xiàn)圖片異步加載及本地緩存的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Android星級評分條控件RatingBar使用詳解

    Android星級評分條控件RatingBar使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android星級評分條控件RatingBar的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Android程序打包為APK的方法詳解

    Android程序打包為APK的方法詳解

    這篇文章主要介紹了Android程序打包為APK的相關(guān)知識,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • 一文帶你看懂Android Application啟動(dòng)流程是怎樣的

    一文帶你看懂Android Application啟動(dòng)流程是怎樣的

    談到Android Application的啟動(dòng)流程,很多文章都是各種源碼類和方法的一堆調(diào)用關(guān)系,這樣的文章就算看一百遍,也只是云里霧里。源碼得看,但是最好不要一下子深陷到源碼的細(xì)節(jié)之中,不可自拔。這里站在前人的基礎(chǔ)之上做一個(gè)總結(jié)
    2021-10-10
  • Android開發(fā)之使用GridView展示圖片的方法

    Android開發(fā)之使用GridView展示圖片的方法

    這篇文章主要介紹了Android開發(fā)之使用GridView展示圖片的方法,涉及Android使用GridView操作圖片的布局與圖片調(diào)用功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-01-01
  • android dialog根據(jù)彈窗等級排序顯示的示例代碼

    android dialog根據(jù)彈窗等級排序顯示的示例代碼

    這篇文章主要介紹了android dialog根據(jù)彈窗等級排序顯示,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Android 輕松實(shí)現(xiàn)圖片倒影效果實(shí)例代碼

    Android 輕松實(shí)現(xiàn)圖片倒影效果實(shí)例代碼

    這篇文章主要介紹了Android 輕松實(shí)現(xiàn)圖片倒影效果實(shí)例代碼,有需要的朋友可以參考一下
    2014-01-01
  • Android 添加系統(tǒng)服務(wù)的方法詳解

    Android 添加系統(tǒng)服務(wù)的方法詳解

    這篇文章主要介紹了Android 添加系統(tǒng)服務(wù)的方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 詳解Android(共享元素)轉(zhuǎn)場動(dòng)畫開發(fā)實(shí)踐

    詳解Android(共享元素)轉(zhuǎn)場動(dòng)畫開發(fā)實(shí)踐

    本篇文章主要介紹了詳解Android(共享元素)轉(zhuǎn)場動(dòng)畫開發(fā)實(shí)踐,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-08-08

最新評論

建水县| 黎平县| 芷江| 光山县| 天祝| 深泽县| 突泉县| 张家港市| 竹山县| 天等县| 钟山县| 如皋市| 聊城市| 精河县| 大连市| 博客| 会泽县| 罗定市| 平阳县| 资兴市| 临海市| 徐水县| 兴城市| 松江区| 司法| 博兴县| 乐清市| 乐亭县| 洛扎县| 呼伦贝尔市| 潮州市| 柳林县| 陆丰市| 克什克腾旗| 响水县| 彩票| 北流市| 循化| 陕西省| 辉南县| 苍溪县|