zoukankan      html  css  js  c++  java
  • 【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     }  

     参考原文:http://blog.csdn.net/nn955/article/details/36176429

  • 相关阅读:
    vue element 关于表单数组循环、对象数据校验
    vue 解耦双向数据绑定,new Set() 去重数组/对象
    Vue-cli3.0搭建和一些坑
    微信小程序入门学习小结--全局设置、数据请求、双向绑定、页面路由跳转、模板抽取
    Vuex简单入门实例
    关于wamp的HTML, PHP, mysql 三者的操作与联系
    关于wamp的HTML, PHP, mysql 三者的操作与联系
    浏览器知识小整理
    HTML DOM textContent 与 innerHTML的区别
    T-SQL查询进阶--SQL Server中的事务与锁
  • 原文地址:https://www.cnblogs.com/tanghuian/p/4543983.html
Copyright © 2011-2022 走看看