【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     }  
时间: 2024-10-10 08:33:57

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

转载:android笔记--android中的多线程--Handler, Looper, MessageQueue, Message类

什么时候使用多线程: 1. 耗时操作使用多线程, 耗时操作放在UI线程中会导致用户的操作无法得到响应. 2. 阻塞操作使用多线程, 理由同上. 3. 多核CUP的设备使用多线程, 可以有效提高CPU的利用率. 4. 并行操作使用多线程. android中的多线程模型主要涉及的类有:Looper, Handler, MessageQueue, Message等. 一:Looper类: 1 static final ThreadLocal<Looper> sThreadLocal = new Th

Android笔记——Android中数据的存储方式(二)

我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效率.如果学过JavaWeb的朋友,首先可能想到的是数据库.当然了数据库是一个方案,那么是否还有其他的解决方案呢?今天我们在讲下Android笔记——Android中数据的存储方式(一) 提到的除了SharedPreferences和Files(文本文件)以外的其他几种数据储存方式:xml文件.SQL

C#直接删除指定目录下的所有文件及文件夹(保留目录)

? ????#region 直接删除指定目录下的所有文件及文件夹(保留目录) /// <summary> /// 直接删除指定目录下的所有文件及文件夹(保留目录) /// </summary> /// <param name="strPath">文件夹路径</param> /// <returns>执行结果</returns> public bool DeleteDir(string strPath) { try

php删除指定目录下的相关文件实例

在php中删除文件最简单的办法直接使用unlink命令,但本文章介绍的是需要删除指定目录下的指定文件,所以我需要遍历删除了,具体看这个例子.  代码如下 复制代码 <?php //删除指定文件夹下的非法文件 function my_del($dir)  {     if(is_dir($dir)){         //打开指定文件夹         if($handle = opendir($dir))         {             while(false !== ($file

C++ 删除一个文件目录下的所有文件以及目录

1 //删除一个文件目录下的所有文件,并删除当前文件夹 chrDirName = _T("c:\\123"); 2 BOOL CIVMSvrInfo::ReleaseDirectory(CString chrDirName) 3 { 4 BOOL bRemove = DoRemoveDirectory(chrDirName); 5 if (bRemove) 6 ::RemoveDirectory(chrDirName); 7 else 8 return FALSE; 9 10 retu

删除一个目录下的所有文件,但保留一个指定文件

此题问题虽小,但是初学者还是很难给出合理的答案的!本文来自老男孩21期网络班学员 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 面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件

C#遍历文件夹(包括子目录)下的所有文件

前提现在一个分区下建立bb.txt文件. 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.IO; 10 11 name

linux面试题:删除一个目录下的所有文件,但保留一个指定文件

此题问题虽小,但是初学者还是很难给出合理的答案的!本文来自老男孩21期网络班学员 面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件 [[email protected] xx]# touch file{1..10} [[email protected] xx]# ls file1  file10  file2  file3  file4  file5  file6  file7  file8

Java扫描指定文件路径下的文件并且递归扫描其子目录下的所有文件

本文主要实现了扫描指定文件路径下的文件,递归扫描其子目录下的所有文件信息,示例文件为: 要求将后缀为.dat的文件夹信息也写入到数据库中,然后将.chk文件解析,将文件中对应的内容读出来写入到数据库,对应类为ChkFileParseFactroy,本文文件发现代码为: 1 package com.src.service.impl; 2 3 import java.io.File; 4 import java.net.InetAddress; 5 import java.net.NetworkIn

Linux下查看文件和文件夹大小 删除日志

场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除多余的日志问题解决! 1 Linux下查看文件和文件夹大小 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力.  du可以查看文件及文件夹的大小. 两者配合使用,非常有效.比如用df查看哪个一