J'essaie de créer un répertoire appelé "images" sur la carte SD sous Android. Voici mon code mais il ne fonctionne pas. Quelqu'un peut-il me donner des conseils ?
File picDirectory = new File("mnt/sdcard/images");
picDirectory.mkdirs();
J'essaie de créer un répertoire appelé "images" sur la carte SD sous Android. Voici mon code mais il ne fonctionne pas. Quelqu'un peut-il me donner des conseils ?
File picDirectory = new File("mnt/sdcard/images");
picDirectory.mkdirs();
Mise à jour : Depuis les mises à jour de stockage d'Android 10,11 Google a limité l'accès au stockage par des opérations de fichier en langage de programmation standard.
Pour les applications ciblant uniquement Android 10 (API 29) et plus, vous devez déclarer "requestLegacyExternalStorage="true"" dans votre fichier manifeste Android pour utiliser les opérations de fichiers basées sur le langage de programmation.
<application android:requestLegacyExternalStorage="true" ....>
\==========
Vous voulez être sûr que vous trouvez correctement l'adresse de votre carte SDCard, vous ne pouvez pas être sûr qu'elle soit toujours à une adresse particulière. Vous voudrez faire ce qui suit !
File directory = new File(Environment.getExternalStorageDirectory()+File.separator+"images");
directory.mkdirs();
Faites-moi savoir si cela fonctionne pour vous !
Vous aurez également besoin de la ligne suivante dans votre AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Je l'utilise pour connaître le résultat :
File yourAppDir = new File(Environment.getExternalStorageDirectory()+File.separator+"yourAppDir");
if(!yourAppDir.exists() && !yourAppDir.isDirectory())
{
// create empty directory
if (yourAppDir.mkdirs())
{
Log.i("CreateDir","App dir created");
}
else
{
Log.w("CreateDir","Unable to create app dir!");
}
}
else
{
Log.i("CreateDir","App dir already exists");
}
Il crée un dossier dans le dossier <nom-de-paquet>/files/. Il ne sera pas visible dans l'explorateur. Je pense qu'il sera interne à l'application ?
Comment créer un dossier dans l'espace externe (là où se trouvent les téléchargements, etc.) dans les API 29 et 30, merci.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.