Android examples for App:Cache
get External Cache Dir
/*/*from ww w. j a va2s . c o m*/ * Copyright (C) 2011 Catch.com * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. * * Harry Tormey <harry@catch.com> Modified by Omar Pera <omar@androidsx.com> */ //package com.book2s; import java.io.File; import java.io.IOException; import android.content.Context; import android.os.Environment; import android.util.Log; public class Main { private static final String NOMEDIA_FILENAME = ".nomedia"; private static final String TAG = "FileCacheUtil"; public static File getExternalCacheDir(Context context) { return getExternalStorageDir(context, "/cache"); } /** We are supposed to check before this method if the sdcard is available */ private static File getExternalStorageDir(Context context, String dir) { if (dir != null) { File extMediaDir = new File( Environment.getExternalStorageDirectory() + "/Android/data/" + context.getPackageName() + dir); if (extMediaDir.exists()) { createNomediaDotFile(context, extMediaDir); return extMediaDir; } if (isSdCardWritable()) { extMediaDir.mkdirs(); createNomediaDotFile(context, extMediaDir); return extMediaDir; } else { Log.e(TAG, "SD card not writeable, unable to create directory: " + extMediaDir.getPath()); } } return null; } private static void createNomediaDotFile(Context context, File directory) { if (directory != null && isSdCardWritable()) { File nomedia = new File(directory, NOMEDIA_FILENAME); if (nomedia != null && !nomedia.exists()) { try { nomedia.mkdirs(); nomedia.createNewFile(); } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "unable to create .nomedia file in " + directory.getPath(), e); } } } } /** * Returns whether the SD card is available and writable */ public static boolean isSdCardWritable() { return Environment.MEDIA_MOUNTED.equals(Environment .getExternalStorageState()); } }