一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android查看文件夾大小以及刪除文件夾的工具類

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

2022-02-27 16:39獨在黑夜看湖面 Android

這篇文章主要介紹了Android查看文件夾大小以及刪除文件夾的工具類,Android計算文件夾大小和刪除目錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在開發中當程序發生ANR或者異常,我們會將信息存在本地,然后上傳服務器,這樣可以實時去發現問題修改問題。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
import android.text.TextUtils;
 
import java.io.File;
import java.math.BigDecimal;
 
 
public class StorageCleanUtils {
 
 /**
  * 獲取文件夾大小(遞歸)
  *
  * @param file File實例
  * @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;
 }
 
 
 /**
  * 獲取當前文件夾大小,不遞歸子文件夾
  *
  * @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";
 }
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_32532321/article/details/80522306

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩亚洲国内综合网香蕉 | 国产自精品| 成年女人免费 | 四虎1515hhh co m| 精品福利视频一区二区三区 | 国产亚洲综合精品一区二区三区 | 久久久久青草大香线综合精品 | 韩国三级做爰 | 日韩无遮挡大尺度啪啪影片 | 波多野结衣被绝伦强在线观看 | 久久久久综合 | 4455在线 | 性肥胖BWBWBW | 亚洲国产欧美在线成人aaaa | 欧美性白人顶级hd | 午夜精品久久久久久 | 欧美高清免费一级在线 | 亚洲人成网站在线观看播放青青 | 97视频久久 | 亚洲国产精品无码中文字满 | 国产一卡 | 波多野结衣在线免费观看 | 美女校花被调教出奶水 | 四虎国产精品视频免费看 | 99久久国产亚洲综合精品 | 精品推荐国产麻豆剧传媒 | 亚洲欧美日韩综合在线播放 | 很黄的孕妇a级黄毛片 | 太大了轻点阿受不了小说h 四色6677最新永久网站 | 美女跪式抽搐gif动态图 | 美女福利网站 | 国产免费专区 | 亚洲欧美精品一区二区 | 叛佛 作者满栀小说免费阅读 | 俄罗斯15一16处交 | 亚洲精品九色在线网站 | 久久久久久久久性潮 | 无人区1在线观看 | 日韩综合一区 | 亚洲国产中文字幕在线视频综合 | 精品国产免费久久久久久 |