Si vous créez un Fichier objet qui encapsule le répertoire de plus haut niveau que vous pouvez l'appeler de mkdirs() méthode pour construire tous les répertoires voulus. Quelque chose comme:
// create a File object for the parent directory
File wallpaperDirectory = new File("/sdcard/Wallpaper/");
// have the object build the directory structure, if needed.
wallpaperDirectory.mkdirs();
// create a File object for the output file
File outputFile = new File(wallpaperDirectory, filename);
// now attach the OutputStream to the file object, instead of a String representation
FileOutputStream fos = new FileOutputStream(outputFile);
Remarque: Il peut être judicieux d'utiliser de l'Environnement.getExternalStorageDirectory() pour obtenir la "Carte SD" répertoire que cela pourrait changer si le téléphone vient le long qui a quelque chose d'autre que d'une Carte SD (comme le flash intégré, un menu à la l'iPhone). De toute façon, vous devriez garder à l'esprit que vous avez besoin pour vous assurer que c'est vraiment là que la Carte SD peut être retirée.
Mise à JOUR: Depuis l'API de Niveau 4 (1.6), vous allez également avoir à demander la permission. Quelque chose comme ceci (dans le manifeste) devrait fonctionner:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />