package com.xiangyixie.picshouse.Cache; import android.content.Context; import java.io.File; public class DiskCache { private File cacheDir; public DiskCache(Context context) { //Find the dir to save cached images if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), "PicsHouse"); else cacheDir = context.getCacheDir(); if (!cacheDir.exists()) cacheDir.mkdirs(); } public File getFile(String url) { //identify images by hashcode. Not a perfect solution, good for the demo. String filename = String.valueOf(url.hashCode()); //Another possible solution (thanks to grantland) //String filename = URLEncoder.encode(url); File f = new File(cacheDir, filename); return f; } public void clear() { File[] files = cacheDir.listFiles(); if (files == null){ return; } for (File f : files){ f.delete(); } } }