0
我正在使用Disk Cache文件夹来存储图像文件。它可以很好地工作,但是当任何人从他/她的设备上执行Clean Data之后,缓存文件夹就会变成一个文件。Android Cache文件夹创建为文件
以下是创建缓存目录
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及以下唯一面临这个问题的代码。
事实上清晰的数据后,甚至没有创建缓存directoty的父目录(即从context.getPackageName()返回,说com.example.app –
是ExternalCacheDirectory发现问题或CacheDir? –
ExternalCacheDirectory –