2015-09-04 220 views
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及以下唯一面临这个问题的代码。

+0

事实上清晰的数据后,甚至没有创建缓存directoty的父目录(即从context.getPackageName()返回,说com.example.app –

+0

是ExternalCacheDirectory发现问题或CacheDir? –

+0

ExternalCacheDirectory –

回答

0

使用

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

尝试着你的代码...相同的结果 –