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.
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
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.