Le chemin d'accès correct à la carte SD est le suivant
/mnt/sdcard/
mais, comme il a été répondu précédemment, vous ne devriez pas le coder en dur. Si vous êtes sous Android 2.1 ou après, utilisez
getExternalFilesDir(String type)
Dans le cas contraire :
Environment.getExternalStorageDirectory()
Lire attentivement https://developer.Android.com/guide/topics/data/data-storage.html#filesExternal
Vous devrez également utiliser cette méthode ou quelque chose de similaire
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
// We can only read the media
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
} else {
// Something else is wrong. It may be one of many other states, but all we need
// to know is we can neither read nor write
mExternalStorageAvailable = mExternalStorageWriteable = false;
}
puis vérifiez si vous pouvez accéder à la carte SD. Comme indiqué, lisez la documentation officielle.
Une autre option consiste peut-être à utiliser mkdirs au lieu de mkdir
file.mkdirs()
Crée le répertoire nommé par le nom de fichier qui suit ce fichier, y compris le chemin d'accès complet au répertoire nécessaire pour créer ce répertoire.