Android écriture de dossier de la carte sd
J'utilise le code suivant pour télécharger un fichier à partir de mon serveur, puis l'écrire dans le répertoire racine de la carte sd, tout fonctionne très bien:
package com.downloader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.os.Environment;
import android.util.Log;
public class Downloader {
public void DownloadFile(String fileURL, String fileName) {
try {
File root = Environment.getExternalStorageDirectory();
URL u = new URL(fileURL);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
FileOutputStream f = new FileOutputStream(new File(root, fileName));
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = in.read(buffer)) > 0) {
f.write(buffer, 0, len1);
}
f.close();
} catch (Exception e) {
Log.d("Downloader", e.getMessage());
}
}
}
Cependant, l'utilisation de Environment.getExternalStorageDirectory();
signifie que le fichier sera toujours écrire à la racine /mnt/sdcard
. Est-il possible de spécifier un certain dossier d'écriture du fichier?
Par exemple: /mnt/sdcard/myapp/downloads
Acclamations
Eef
- N'oubliez pas d'ajouter les autorisations dans le manifeste pour que cela fonctionne.. <uses-permission android:name="android.la permission.WRITE_EXTERNAL_STORAGE" />
Vous devez vous connecter pour publier un commentaire.
Ajouter une Autorisation pour Android Manifeste
Ajouter cette WRITE_EXTERNAL_STORAGE autorisation à vos applications manifeste.
Vérifier la disponibilité de stockage externe
Vous devriez toujours vérifier la disponibilité de la première. Un extrait de le fonctionnaire android documentation sur le stockage externe.
Utiliser un Filewriter
Au dernier mais pas moins oublier le
FileOutputStream
et l'utilisation d'unFileWriter
à la place. Plus d'informations sur cette classe forme le FileWriter javadoc. Vous aurez peut vouloir ajouter un peu plus d'ici la gestion des erreurs pour en informer l'utilisateur.FileOutputStream
(bien, elle ne couvre pas les solutions de rechange). Pourquoi est-il préférable d'utiliser leFileWriter
au lieu - est-il plus rapide/plus fiable/quelque chose d'autre?FileOutputStream
. Si vous n'êtes pas l'écriture de fichiers texte,FileWriter
n'est pas beaucoup d'aide. En fait, si vous écrivez un image fichier, il ne peut pas vraiment être fait avec unFileWriter
bien sûr, si vous vraiment envie d'une belle API pour le texte, enveloppez votreFileOutputStream
dans unPrintStream
et vous aurez tous les mêmes méthodes queSystem.out
.Trouvé la réponse ici - http://mytechead.wordpress.com/2014/01/30/android-create-a-file-and-write-to-external-storage/
Il dit,
et puis il faut utiliser ce code à écrire pour le stockage externe:
Et ce qu'il est. Si maintenant vous visitez votre /sdcard/votre-dir-nom/dossier que vous allez voir un fichier nommé - My-File-Name.txt avec le contenu tel que spécifié dans le code.
PS:- Vous besoin de l'autorisation suivante -
/sdcard/
n'est pas toujours la carte sd.Afin de télécharger un fichier à Télécharger ou Dossier de Musique Dans SDCard
Et n'oubliez pas d'ajouter la permission de manifester