Carpeta privada en almacenamiento interno / externo en android
Quiero crear una carpeta privada para los datos de mi aplicación. Esta carpeta debe eliminarse automáticamente cuando se retire la aplicación del dispositivo. De acuerdo con http://developer.android.com/training/basics/data-storage/files.html , tengo que crear una carpeta privada. Cómo puedo conseguir esto. Mi código de abajo. La carpeta no se borra cuando se quita la aplicación.
public static String getAppFilePath(Context context) { String path = ""; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { path = Environment.getExternalStorageDirectory() .getAbsolutePath(); path += "/myFolder"; } else { ContextWrapper c = new ContextWrapper(context); path = c.getFilesDir().getPath(); } File ret = new File(path); if (!ret.exists()) { ret.mkdirs(); } return path; }
- Creación de un archivo zip con algunos archivos en SDCard
- Uso de NanoHTTPD en Android
- Cómo abrir la carpeta Mis archivos en Android Programatically (using Intent)?
- Cómo obtener la ruta interna y externa de sdcard en android
- Android: ¿cómo obtener una lista drectory ordenada por nombre o por fecha descendente?
- Importar archivo Android APK?
- Android: write failed: EPIPE (Broken pipe) Error al escribir el archivo
- No se puede eliminar el archivo con la clase File
- Dónde guardar los archivos de texto en el proyecto de Android en eclipse
- Mover archivos en la tarjeta sd
- Por qué, los recursos en android se convierten en HEXA-DECIMAL dentro de R.java
- R.java desapareció
- Archivo de Android a Base64 utilizando streaming a veces se pierde 2 bytes
lo estas haciendo mal.
De la documentación que usted señaló:
Si desea guardar archivos privados para su aplicación , puede adquirir el directorio apropiado llamando a getExternalFilesDir () y pasándole un nombre que indique el tipo de directorio que desee. Cada directorio creado de esta manera se agrega a un directorio principal que encapsula todos los archivos de almacenamiento externo de la aplicación, que el sistema elimina cuando el usuario desinstala su aplicación.
Por ejemplo, aquí hay un método que puede usar para crear un directorio para un álbum de fotos individual:
public File getAlbumStorageDir(Context context, String albumName) { // Get the directory for the app's private pictures directory. File file = new File(context.getExternalFilesDir( Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) { Log.e(LOG_TAG, "Directory not created"); } return file; }
Si ninguno de los nombres de subdirectorio predefinidos se ajusta a sus archivos, puede llamar getExternalFilesDir () y pasar null. Esto devuelve el directorio raíz del directorio privado de la aplicación en el almacenamiento externo.
Recuerde que getExternalFilesDir () crea un directorio dentro de un directorio que se elimina cuando el usuario desinstala su aplicación. Si los archivos que está guardando deben permanecer disponibles después de que el usuario desinstale su aplicación, por ejemplo, cuando su aplicación sea una cámara y el usuario quiera guardar las fotos, debería usar getExternalStoragePublicDirectory ().
Así que básicamente necesitas usar la función getExternalFilesDir
en el ejemplo anterior para eliminarla cuando la aplicación se desinstala.
Según la documentación de getExternalFilesDir()
Parámetros
Escriba el tipo de directorio de archivos a devolver. Puede ser
null
para la raíz del directorio de archivos o una de las siguientes constantes para un subdirectorio:DIRECTORY_MUSIC
,DIRECTORY_PODCASTS
,DIRECTORY_RINGTONES
,DIRECTORY_ALARMS
,DIRECTORY_NOTIFICATIONS
,DIRECTORY_PICTURES
oDIRECTORY_MOVIES
.
Por lo que aparte de los tipos predefinidos puede utilizar null
para la raíz del directorio.
En palabras sencillas no puedes. No es posible porque no se puede manejar el evento después de desinstalar la aplicación.