【Android笔记】Android统计文件夹大小,删除文件夹下的所有文件方法

1、获取文件夹大小:

 1 /**   
 2      * 获取文件夹大小   
 3      * @param file File实例   
 4      * @return long      
 5      */     
 6     public static long getFolderSize(java.io.File file){    
 7    
 8         long size = 0;    
 9         try {  
10             java.io.File[] fileList = file.listFiles();     
11             for (int i = 0; i < fileList.length; i++)     
12             {     
13                 if (fileList[i].isDirectory())     
14                 {     
15                     size = size + getFolderSize(fileList[i]);    
16    
17                 }else{     
18                     size = size + fileList[i].length();    
19    
20                 }     
21             }  
22         } catch (Exception e) {  
23             // TODO Auto-generated catch block  
24             e.printStackTrace();  
25         }     
26        //return size/1048576;    
27         return size;    
28     }  

2、删除文件夹下所有文件:

 1 /**   
 2      * 删除指定目录下文件及目录    
 3      * @param deleteThisPath   
 4      * @param filepath   
 5      * @return    
 6      */     
 7     public void deleteFolderFile(String filePath, boolean deleteThisPath) {     
 8         if (!TextUtils.isEmpty(filePath)) {     
 9             try {  
10                 File file = new File(filePath);     
11                 if (file.isDirectory()) {// 处理目录     
12                     File files[] = file.listFiles();     
13                     for (int i = 0; i < files.length; i++) {     
14                         deleteFolderFile(files[i].getAbsolutePath(), true);     
15                     }      
16                 }     
17                 if (deleteThisPath) {     
18                     if (!file.isDirectory()) {// 如果是文件,删除     
19                         file.delete();     
20                     } else {// 目录     
21                    if (file.listFiles().length == 0) {// 目录下没有文件或者目录,删除     
22                             file.delete();     
23                         }     
24                     }     
25                 }  
26             } catch (Exception e) {  
27                 // TODO Auto-generated catch block  
28                 e.printStackTrace();  
29             }     
30         }     
31     }    

3、格式化文件夹大小单位:

 1 /** 
 2      * 格式化单位 
 3      * @param size 
 4      * @return 
 5      */  
 6     public static String getFormatSize(double size) {  
 7         double kiloByte = size/1024;  
 8         if(kiloByte < 1) {  
 9             return size + "B";  
10         }  
11           
12         double megaByte = kiloByte/1024;  
13         if(megaByte < 1) {  
14             BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));  
15             return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";  
16         }  
17           
18         double gigaByte = megaByte/1024;  
19         if(gigaByte < 1) {  
20             BigDecimal result2  = new BigDecimal(Double.toString(megaByte));  
21             return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";  
22         }  
23           
24         double teraBytes = gigaByte/1024;  
25         if(teraBytes < 1) {  
26             BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));  
27             return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";  
28         }  
29         BigDecimal result4 = new BigDecimal(teraBytes);  
30         return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB";  
31     }  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。