Android 获取文件夹大小,删除等操作

2017-09-14 08:07:18来源:CSDN作者:iblade人点击

分享
 /**     * 获得当前大小     */    private float getCacheSize() {        // TODO:设置数据显示        float size = getFolderSize(new File(CACHE_PATH));        float size_show = (float) (Math.round(size / 1024.0f / 1024 * 100)) / 100;// (这里的100就是2位小数点,如果要其它位,如4位,这里两个100改成10000)        if (size_show == 0) size_show = size == 0 ? 0 : 0.01f;        return size_show;    }    /**     * 获取文件夹大小     *     * @param file File实例     * @return long     */    private long getFolderSize(File file) {        long size = 0;        try {            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 deleteThisPath     * @return     */    private 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 {// 目录                    }                }            } catch (Exception e) {                e.printStackTrace();            }            Utils.showToast(this, "清理成功!");            tv_cache_size.setText(getCacheSize() + "M   ");        }    }

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台