web-dev-qa-db-fra.com

Android ne crée pas de dossier

Ce soir, j'ai des problèmes pour faire quelque chose que je pensais être simple: créer un dossier dans/mnt/sdcard.

J'ai mis la permission suivante:

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

Mon Main.Java a les éléments suivants pour créer le dossier:

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!");
        }
    }

Je reçois le "dossier créé!" message dans mon journal, mais lorsque je vérifie à la fois /mnt/sdcard et /sdcard, aucun n’a le dossier. J'ai essayé d'appeler:

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

et ça retourne vrai. Je ne peux tout simplement pas comprendre cela, car tous les signes indiquent que cela devrait fonctionner. Je l'ai également essayé avec le téléphone déconnecté du PC au cas où la carte SD serait montée ou quelque chose du genre, car j'utilise actuellement mon téléphone au lieu de l'émulateur pour le développement. En parlant de cela, debuggable à true l'empêche-t-il de créer le dossier?

Merci!

24
Taylor Kems

Le répertoire /mnt/sdcard/tallgrass/ existe-t-il? (Je suppose que non, mais on ne sait jamais.)

La méthode File.mkdirs() créera tous les répertoires nécessaires; mkdir() ne créera que le répertoire last dans le chemin.

42
sarnold

Vérifiez où vous mettez les autorisations, ils doivent aller de cette façon:

 <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"
0
user3470042