[Android][工具类]CacheUtils

import android.content.Context;
import android.os.Environment;

import java.io.File;
/**
 * 缓存的工具类
 * 如:获取应用缓存根目录,imageloader,头像根目录,获取应用缓存大小,清除缓存
 *
 */
public class CacheUtils {

    private static final String IMAGELOADER_SEPARATOR = "imageloader";
    private static final String AVATAR_SEPARATOR = "avatar";

    /**
     * 得到该应用的缓存根目录
     *
     * @param context 上下文
     * @param appName 应用名称
     * @return 应用的缓存根目录
     */
    public static File getRootCache(Context context, String appName) {
        String appDirRootPath ;
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            appDirRootPath = Environment.getExternalStorageDirectory().getPath()
                    + File.separator + appName + File.separator;
        } else {
            appDirRootPath = context.getCacheDir().getPath()
                    + File.separator + appName + File.separator;
        }
        File dirCache = new File(appDirRootPath);
        if (!dirCache.exists()) {
            dirCache.mkdirs();
        }
        return dirCache;
    }

    /**
     * 得到该应用的imageloader的缓存目录
     *
     * @param context 上下文
     * @param appName 应用名称
     * @return imageloader的缓存目录
     */
    public static File getImageLoaderCache(Context context, String appName) {
        String imageLoaderCachePath = getRootCache(context, appName).getPath() + File.separator + IMAGELOADER_SEPARATOR + File.separator;
        File file = new File(imageLoaderCachePath);
        if (!file.exists()) {
            file.mkdirs();
        }
        return file;
    }

    /**
     * 得到头像的image目录
     *
     * @param context 上下文
     * @param appName 应用名称
     * @return 头像的image目录
     */
    public static File getAvatarCache(Context context, String appName) {
        String avatarCachePath = getRootCache(context, appName).getPath() + File.separator + AVATAR_SEPARATOR + File.separator;
        File file = new File(avatarCachePath);
        if (!file.exists()) {
            file.mkdirs();
        }
        return file;
    }

    /**
     * 获取应用缓存大小
     *
     * @param context 上下文
     * @return 缓存大小,如"10.0MB"
     */
    public static String getCacheSize(Context context) {
        File file = context.getCacheDir();
        if (file != null && file.exists()) {
            double mb = FileUtils.getFolderSize(file);
            String temp = FileUtils.getFormatSize(mb);
            return temp;
        } else {
            return "0MB";
        }
    }

    /**
     * 清除缓存
     *
     * @param context 上下文
     */
    public static void clearCache(Context context) {
        File file = context.getCacheDir();
        FileUtils.deleteFiles(file);
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容