web-dev-qa-db-fra.com

Créer un dossier dans Android

 import Java.io.File;  
    File folder = new File(Environment.getExternalStorageDirectory() + "/TollCulator");
    boolean success = true;
    if (!folder.exists()) {
        //Toast.makeText(MainActivity.this, "Directory Does Not Exist, Create It", Toast.LENGTH_SHORT).show();
        success = folder.mkdir();
    }
    if (success) {
        //Toast.makeText(MainActivity.this, "Directory Created", Toast.LENGTH_SHORT).show();
    } else {
        //Toast.makeText(MainActivity.this, "Failed - Error", Toast.LENGTH_SHORT).show();
    }

Ce qui précède devrait créer un dossier sur ma carte SD s'il n'existe pas, s'il ne fait rien. Bien que le toast fonctionne en fonction de la condition, mais il ne crée pas de répertoire lorsqu'il n'existe pas. Une idée comment le résoudre?

Mon Manifest ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.test.testing"
    Android:versionCode="1"
    Android:versionName="1.0" >

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

    <uses-sdk
        Android:minSdkVersion="6"
        Android:targetSdkVersion="17" />

    <application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity
            Android:name="com.test.testing.MainActivity"
            Android:label="@string/app_name" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Mise à jour: J'ai mis à jour mon manifeste ainsi que mon code mais il ne crée toujours pas le dossier sur ma carte SD. N'oubliez pas que j'utilise Eclipse et que je lance l'application directement sur mon téléphone (GNex VZW) au lieu d'utiliser un AVD.

33
Si8

Ajoutez cette permission dans Manifest,
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>

File folder = new File(Environment.getExternalStorageDirectory() + 
                             File.separator + "TollCulator");
boolean success = true;
if (!folder.exists()) {
    success = folder.mkdirs();
}
if (success) {
    // Do something on success
} else {
    // Do something else on failure 
}

lorsque vous lancez l’application, allez aussi DDMS-> Explorateur de fichiers-> dossier mnt-> dossier sdcard-> dossier de création de péage

109
KOTIOS

Si vous essayez de créer plus d’un dossier à la racine de la carte SD, ex. Environment.getExternalStorageDirectory() + "/Example/Ex App/"

alors, au lieu de folder.mkdir(), vous utiliseriez folder.mkdirs()

J'ai commis cette erreur par le passé et j'ai mis une éternité à le comprendre.

13
Alankrut Patel