java/android 统计文件夹大小及删除文件夹下所有文件和路径

经过网络搜索,整理 如下方法是可用的   java/android 统计文件夹大小及删除文件夹下所有文件和路径

/**  
     * 获取文件夹大小  
     * @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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}   
       //return size/1048576;  
        return size;  
    }  
    
    /**  
     * 删除指定目录下文件及目录   
     * @param deleteThisPath  
     * @param filepath  
     * @return   
     */   
    public void 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();   
				        }   
				    }   
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				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";
	}


  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值