2015-09-04 176 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

嘗試着你的代碼...相同的結果 –