studio create android

create - get internal storage directory android



Diferencia entre getExternalFilesDir y getExternalStorageDirectory() (3)

Entiendo que ExternalFiles se utilizará en API 8 y arriba y getExternalStorageDirectory es para 7 y abajo. Sin embargo, estoy un poco confundido entre el uso. Por ejemplo, quería verificar que existe una carpeta y anteriormente utilizaría algo como:

File ChildFolder = new File(Environment.getExternalStorageDirectory() + "/ParentFolder/Child");

Sin embargo, cada ejemplo que veo dice usar getExternalFilesDir (null), File.ext. Como estoy por encima de API 8, quiero utilizar este método, pero ¿cómo puedo buscar una carpeta? Comprobaré la existencia de un archivo en otro punto, pero por ahora solo quiero ver si existen las carpetas.

TIA JB


! ACTUALIZACIÓN IMPORTANTE ! para quien se encuentre con esta pregunta.

Como esta es una pregunta un tanto antigua, solo quería proporcionar algo de información adicional. Desde KitKat, incluso las aplicaciones que tienen permiso WRITE_EXTERNAL_STORAGE solo pueden escribir en Android / data / data / your_package / en el almacenamiento externo, también getExternalFilesDir() como getExternalFilesDir()

Si intenta escribir en getExternalStorageDirectory() + "/somefolder/anotherfolder/" obtendrá una SecurityException en la mayoría de los dispositivos


Antes que nada, debemos entender qué diferencia hay entre el almacenamiento interno, el almacenamiento externo (también conocido como almacenamiento externo primario) y el almacenamiento externo secundario.

Almacenamiento interno: es el almacenamiento al que no puede acceder el usuario, excepto a través de aplicaciones instaladas (o al rootear su dispositivo). Ejemplo: data / data / app_packageName

Almacenamiento externo principal: en el almacenamiento compartido construido que es "accesible por el usuario conectando un cable USB y montándolo como un disco en una computadora host". Ejemplo: cuando decimos Nexus 5 32 GB.

Almacenamiento externo secundario: almacenamiento extraíble. Ejemplo: Tarjeta SD.

getExternalFilesDir (String type)

Devuelve la ruta a la carpeta de archivos dentro de Android / data / data / your_package / en el almacenamiento externo principal. Que es almacenamiento incorporado.

getExternalStorageDirectory ()

Devolverá la ruta del directorio de almacenamiento externo secundario


getExternalFilesDir()

Devuelve la ruta a la carpeta de archivos dentro de Android / data / data / your_package / en su tarjeta SD. Se utiliza para almacenar los archivos necesarios para su aplicación (por ejemplo, imágenes descargadas de archivos web o de caché). Una vez que la aplicación se desinstala, los datos almacenados en esta carpeta también desaparecen.

getExternalStorageDirectory()

Devuelve la ruta raíz a su tarjeta SD (por ejemplo, mnt / sdcard / ). Si guarda los datos en esta ruta y desinstala la aplicación, esos datos no se perderán.