Android缓存文件夹被创建为文件



我使用磁盘缓存文件夹存储图像文件。它工作得很完美,但是当任何人从他/她的设备执行清理数据后,缓存文件夹变成了一个文件。

下面是创建缓存目录 的代码
File myDiskCacheDir=getDiskCacheDir(this,IMAGE_CACHE_DIR);
diskCache=new MyDiskCache(this,myDiskCacheDir);

public static File getDiskCacheDir(Context context, String uniqueName) {
            if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) ||(!isExternalStorageRemovable()))
        {
            cachePath=getExternalCacheDir(context).getPath();
        }
        else {
            cachePath=context.getCacheDir().getPath();
        }
        new File(cachePath).mkdirs();
        return new File(cachePath + File.separator + uniqueName);
}

public static File getExternalCacheDir(Context context) {
    if (Utils.hasFroyo()) {
        return context.getExternalCacheDir();
    }
    // Before Froyo we need to construct the external cache dir ourselves
    final String cacheDir = "/Android/data/" + context.getPackageName() + "/cache/";
    File cacheDirFile=new File(Environment.getExternalStorageDirectory().getPath() + cacheDir);
    cacheDirFile.mkdirs();
    return cacheDirFile;
}

我只在Android 4.2及以下版本遇到这个问题。

使用

new File(cachePath + "/").mkdirs();

最新更新