2011-08-06 17 views
8

Quiero guardar algunos datos en el directorio externo del usuario (es decir, tarjeta SD), pero parece que hay un problema extraño. Estoy usando Environment.getExternalStorageDirectory() que devuelve "mnt/sdcard /" (que está bien). Quiero crear dos carpetas en este directorio por lo que hago:Guardar datos en el almacenamiento externo

File main = new File(getExternalStorageDirectory() + "/my_app/some_data"); 
if(!main.isDirectory()) 
    main.mkdirs(); 

Ahora pensé que esto haría que el directorio "mnt/sdcard/my_app/some_data", pero después de usar un gestor de archivos para mirar el SD tarjeta, resulta que esta carpeta se crea en "mnt/sdcard/my_app/mnt/sdcard/my_app/some_data", lo cual es bastante extraño. ¿Alguien puede decirme cómo arreglar esto?

Respuesta

10

intente lo siguiente y ver lo que hay ...

String packageName = this.getPackageName(); 
File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Android" + File.separator + "data" + File.separator + packageName + File.separator + "files"); 
myFilesDir.mkdirs(); 

Es exacly lo que utilizo para crear un directorio de trabajo en una tarjeta SD. Para mí crea ...

/mnt/sdcard/Android/data/com.mycompany.myApp/files 

... donde 'com.mycompany.myApp' es el nombre del paquete real de mi aplicación.

+0

Después de algunas modificaciones y de agregar su código, lo conseguí, ¡gracias! – Brian

+0

Me alegra ayudar. Que te diviertas. – Squonk

+0

Oye, puede agregar su respuesta aquí, por favor – Loshi

Cuestiones relacionadas