Android查看文件夹大小以及删除文件夹的工具类

在开发中当程序发生ANR或者异常,我们会将信息存在本地,然后上传服务器,这样可以实时去发现问题修改问题。

那我们需要获取文件之后需要对文件进行删除等操作,下面是写的一个工具类,用于查看文件夹大小以及删除文件夹。

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";
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android实时文件夹创建方法

    本文实例讲述了Android实时文件夹创建方法.分享给大家供大家参考.具体如下: 实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件.要创建一个实时文件夹,必须要有两方面的支持.一方面是,要定义一个用来创建实时文件夹的Activity.另一方面是,所指定数据信息URI的ContentProvider必须支持实时文件夹的查询.本节中就将要介绍如何为应用程序创建实时文件夹. 与在Launcher的桌面上添加一个快捷方式类似,用户在桌面上长按后选择实时文件夹就会弹出一

  • android创建和删除文件夹和文件的实现方法

    这个也比较简单了,直接上代码 /** * 创建目录文件 */ public static void createPath(String path) { File file = new File(path); if (!file.exists()) { file.mkdir(); } } 删除文件比较简单,但是删除文件夹就不是那么简单了,特别是里面还包含很多子文件.你需要逐条的删除. /** * 删除文件夹所有内容 * */ public void deleteFile(File file) {

  • Android中删除文件以及文件夹的命令记录

    记录一下命令: tools>adb remount tools>adb shell #su #cd system/sd/data //进入系统内指定文件夹 #ls //列表显示当前文件夹内容 #rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件 #rm xxx //删除文件xxx #rmdir xxx //删除xxx的文件夹

  • Android查看文件夹大小以及删除文件夹的工具类

    在开发中当程序发生ANR或者异常,我们会将信息存在本地,然后上传服务器,这样可以实时去发现问题修改问题. 那我们需要获取文件之后需要对文件进行删除等操作,下面是写的一个工具类,用于查看文件夹大小以及删除文件夹. import android.text.TextUtils; import java.io.File; import java.math.BigDecimal; public class StorageCleanUtils { /** * 获取文件夹大小(递归) * * @param f

  • Android编程实现的身份证、车牌号正则验证工具类实例

    本文实例讲述了Android编程实现的身份证.车牌号正则验证工具类.分享给大家供大家参考,具体如下: /** * 正则表达式验证工具类(验证身份证.车牌号等) * * @author chenlin * */ public class ValidateUtil { /** * 验证str是否为正确的身份证格式 * * @param str * @return */ public static boolean isIdentityCard(EditText view) { boolean flag

  • Android编程实现的EditText弹出打开和关闭工具类

    本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类.分享给大家供大家参考,具体如下: 需求: 使用代码实现Android的输入框EditText对键盘的关闭弹出的实现. 代码: /** * 打开键盘 * * @param editText 操作的输入框 */ public static void openKeyboard(EditText editText) { //设置可获得焦点 editText.setFocusable(true); editText.setFocu

  • Android自定义有限制区域图例角度自识别涂鸦工具类中篇

    目录 引言 总结 引言 上文Android:实现一个自定义有限制区域的图例(角度自识别)涂鸦工具类(上)中我们已经实现了自定义View签名的功能,包含撤回.清除方法.但我们最终要实现的功能还不止如此,这篇我们就来说说给限制区域内签名的实现过程. 试想,既然是自定义View了,那么如果要限制用户在指定区域内签名,最好的办法不是在触摸的时候通过坐标点的判断添加一些拦截吗?没错,起初我也是这么想的,但是再看到限制区域的图形后,我陷入了深深的沉思...... 没错,就是这样的图,这还是其中的一张,后期指

  • android自动生成dimens适配文件的图文教程详解(无需Java工具类)

    在编写ui界面时因为手机分辨率大小不同,所以展现出来的效果也是不同的,这个时候就需要考虑适配器,让根据手机分辨率自动适配相应尺寸来展示界面,可以提高用户的体验感. 1.首先安装插件ScreenMatch,安装成功之后android studio会提示重启 2.在res->values下创建一个dimens文件,将以下代码复制进去.如果不创建这个文件一下操作会不成功导致项目重启. <dimen name="common_margin">@dimen/dp_15</

  • Android实现支持进度条显示的短信备份工具类

    使用内容提供者读取短信内容,写入XML文件,进度条ProgressDialog更新备份进度. 新知识点:子线程如何在在不使用Handler的情况下更新UI /** * 进行短信备份的工具类,支持进度条显示 * @author lian * */ public class SmsBackupUtils { private static class Data{ int progress; } /** * * @param context * 调用此工具类的Activity * @param pd *

  • asp.net编程实现删除文件夹及文件夹下文件的方法

    本文实例讲述了asp.net编程实现删除文件夹及文件夹下文件的方法.分享给大家供大家参考,具体如下: //获取文件夹 string path = Server.MapPath("Image"); //获取文件夹中所有图片 if (Directory.GetFileSystemEntries(path).Length > 0) { //遍历文件夹中所有文件 foreach (string file in Directory.GetFiles(path)) { //文件己存在 if

  • java删除文件和文件夹具体实现

    1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)Java代码 复制代码 代码如下: // 验证字符串是否为正确路径名的正则表达式  private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*";  // 通过 sPath.matches(matches) 方法的返回值判断是否正确  // sPath 为路径字符串 2,通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文件

  • Linux 删除文件夹和文件的命令(强制删除包括非空文件)

    linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思 1.删除文件夹实例: rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 2.删除文件使用实例: rm -f /var/log

  • Linux服务器删除文件夹、删除文件、解压命令的方法

    一.删除文件夹 例:rm -rf /usr/java 将会删除/usr/java目录以及其下所有文件.文件夹 二.删除文件 例:rm -f /usr/tomcat/conf/server.xml 将会强制删除/usr/tomcat/conf/server.xml这个文件 三.解压 1. 解压到当前目录 例:tar -zxvf jdk-8u131-linux-x64.tar.gz 会将jdk-8u131-linux-x64.tar.gz解压到其所在的当前目录下 以上这篇Linux服务器删除文件夹.

随机推荐