Android文件類操作,清除安裝目錄下緩存,獲取緩存大小

清除操作,可選擇是否刪除目錄

 private boolean delFileByPath(String filePath) {
        showDialog("清理中");
        try {
            File dir = new File(filePath);
            if (dir == null || !dir.exists() || !dir.isDirectory()) {
                dismissDialog();
                ToastUtils.showShort("緩存文件空");
                return false;
            }

            for (File file : dir.listFiles()) {
                if (file.isFile()) {
                    //自定義
                    /**
                     if (Integer.parseInt(new SimpleDateFormat("yyyyMMdd").format(new Date())) - Integer.parseInt(file.getName().split("-")[2].split("\\.")[0].substring(0, 8)) > 30) {
                     Log.e(TAG, "deleteFolderFile:30天之前的刪除 ");
                     }
                     Log.e(TAG, "deleteFile: " + file.getName().split("-")[2].split("\\.")[0].substring(0, 8));
                     */
                    //具體操作
                    file.delete(); // 刪除所有文件
                } else if (file.isDirectory()) {
                    delFileByPath(file.getPath()); // 遞規的方式刪除文件夾
                }
            }
            Log.e(TAG, "deleteFolder: " + dir.getName());
//            dir.delete();// 刪除目錄本身
            initView();
            dismissDialog();
            ToastUtils.showShort("清理完成");
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            dismissDialog();
            ToastUtils.showShort("清理失敗");
            return false;
        }
    }

獲取目錄大小:

/**
 * 獲取指定目錄大小
 *
 * @return
 */
public double getDirSize(String filePath) {
    File file = new File(filePath);
    //判斷文件是否存在
    if (file.exists()) {
        //如果是目錄則遞歸計算其內容的總大小
        if (file.isDirectory()) {
            File[] children = file.listFiles();
            double size = 0;
            for (File f : children)
                size += getDirSize(f.getAbsolutePath());
            return size;
        } else {//如果是文件則直接返回其大小,以“兆”爲單位
            double size = (double) file.length() / 1024 / 1024;
            return size;
        }
    } else {
        System.out.println("文件或者文件夾不存在,請檢查路徑是否正確!");
        return 0.0;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章