2011-05-11 15 views
23

Esta noche estoy teniendo problemas para hacer algo que pensé que sería simple ... crear una carpeta en/mnt/sdcard.Android mkdir no está haciendo la carpeta

yo he dado la autorización siguientes:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 

Mi Main.java tiene la siguiente para que la carpeta: "! Carpeta creada"

public class Main extends TabActivity { 
    static int index = 1; 
    private static final String TAG = "Main";  

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     File folder = new File(Environment.getExternalStorageDirectory() + "/tallgrass/images"); 
     boolean success = false; 
     if(!folder.exists()){ 
      success = folder.mkdir(); 
     } 
     if (!success){ 
      Log.d(TAG,"Folder not created."); 
     } 
     else{ 
      Log.d(TAG,"Folder created!"); 
     } 
    } 

Me da la mensaje en mi registro, pero cuando compruebo /mnt/sdcard y /sdcard ninguno tiene la carpeta. He intentado llamar:

Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) 

y devuelve verdadero. Simplemente no puedo entender esto porque todas las señales apuntan a que debería funcionar. También lo intenté con el teléfono desconectado de la PC en caso de que la tarjeta SD estuviera montando o algo así como actualmente estoy usando mi teléfono en lugar del emulador para desarrollarlo. Hablando de eso, ¿puede ser que debuggable a true evite que haga la carpeta?

Gracias!

Respuesta

42

¿Existe el directorio /mnt/sdcard/tallgrass/? (Supongo que no, pero nunca se sabe).

El método File.mkdirs() creará todos los directorios necesarios; mkdir() solo creará el último directorio en la ruta de acceso.

+0

eso es todo! Estaba tratando de publicar una respuesta ya que me di cuenta de que momentos después de publicar pero ser un nuevo usuario no me dejaba responder mi propia publicación. Voy a comprobar esto tan pronto como me lo permita. ¡Gracias! –

+0

D'oh! En su mayoría, las medidas automatizadas aquí son lo suficientemente razonables (y muy efectivas para eliminar el correo no deseado), pero los nuevos usuarios a veces cargan con el peso de esas restricciones. De todos modos, bienvenido a SO! :) – sarnold

0

Comprobar donde se está poniendo los permisos tienen que ir de esta manera:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="edu.una.info.app"> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 

<application android:allowBackup="true" 
    android:label="@string/app_name" 
    android:icon="@drawable/ic_launcher" 
    android:theme="@style/AppTheme"> 

    <activity 
     android:name="edu.una.info.SplashScreenActivity" 
Cuestiones relacionadas