J'essaie de créer un dossier et plusieurs sous-répertoire à l'intérieur de celui-ci sur la carte SD ... Je veux ensuite transférer les fichiers que j'ai stockés dans/res/raw dans ce dossier ... Je plus, je veux seulement se produire une fois, la première fois que le programme est exécuté. Je me rends compte que c'est ridiculement ouvert, et que je demande beaucoup ... mais toute aide serait grandement appréciée.Android: Comment créer un répertoire sur la carte SD et y copier des fichiers depuis/res/raw?
Répondre
Cela copiera tous les fichiers dans le sous-dossier « clipart » des actifs .apk dossier dans le sous-dossier du dossier de votre application « clipart » sur la carte SD:
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
String basepath = extStorageDirectory + "/name of your app folder on the SD card";
//...
// in onCreate
File clipartdir = new File(basepath + "/clipart/");
if (!clipartdir.exists()) {
clipartdir.mkdirs();
copyClipart();
}
private void copyClipart() {
AssetManager assetManager = getResources().getAssets();
String[] files = null;
try {
files = assetManager.list("clipart");
} catch (Exception e) {
Log.e("read clipart ERROR", e.toString());
e.printStackTrace();
}
for(int i=0; i<files.length; i++) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open("clipart/" + files[i]);
out = new FileOutputStream(basepath + "/clipart/" + files[i]);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(Exception e) {
Log.e("copy clipart ERROR", e.toString());
e.printStackTrace();
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
J'ai connu un problème similaire lors de l'utilisation (mkdirs), cependant à cause d'exécuter la commande:
mkdir une/deux
échoue sur Linux, la méthode http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#mkdirs() subsé échoue aussi Je suppose que cela signifie qu'il n'y a aucun moyen d'utiliser mkdirs sur Android? Mon (probablement plutôt hacky) le travail autour était de créer chaque répertoire nécessaire séparément:
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
new File(extStorageDirectory + "/one/").mkdirs();
new File(extStorageDirectory + "/one/two/).mkdirs();
[File.mkDirs() ] (http://developer.android.com/reference/java/io/File.html#mkdirs%28%29) fonctionne. Je l'ai essayé sur Android 2.1 (API niveau 7) – Mudassir
- 1. Comment créer automatiquement un répertoire sur la carte SD
- 2. Déplacer des fichiers sur une carte SD sous Android
- 3. Création d'un fichier sur la carte SD dans android
- 4. carte Android-Sd
- 5. Autorisation d'écriture sur la carte SD
- 6. Android: bonnes pratiques pour l'organisation des répertoires et des fichiers sur la carte SD de stockage?
- 7. Mettre manuellement les fichiers sur l'émulateur Android Carte SD
- 8. Comment charger jni de la carte SD sur android 2.1?
- 9. stocker des données d'application Android sur la carte SD
- 10. Copie de fichiers .db génériques sur la carte SD
- 11. Problème de carte SD d'émulateur Android
- 12. Problème Création d'un répertoire sur la carte SD
- 13. Créer un répertoire et copier un fichier
- 14. Activité Android pour afficher un explorateur de répertoire pour parcourir le contenu de la carte SD
- 15. Y at-il une limite pour le nombre de fichiers dans un répertoire sur une carte SD?
- 16. Récupération des données supprimées de la carte SD Android?
- 17. besoin AT-Command pour copier des fichiers à partir de la carte SD
- 18. Comment faire un fichier caché dans la carte SD Android?
- 19. Images du dossier sur la carte SD
- 20. Navigateur de fichiers de carte SD dans Android
- 21. Android: Installer mon application sur la carte SD par défaut
- 22. émulateur Android problème de carte SD
- 23. Comment lire/écrire des données sur la carte SD montée
- 24. Performance d'écriture sur carte SD
- 25. Comment faire pour exécuter l'émulateur android avec la carte SD
- 26. Opérations de bas niveau avec carte SD sur Android
- 27. Comment puis-je trouver la mémoire disponible sur une carte SD sur un périphérique wince (C++)
- 28. Comment utiliser la carte SD dans Android Emulator 1.5
- 29. Impossible d'ajouter des données à la carte SD Android sur l'émulateur
- 30. Android - Retirer les données de la carte SD
où est-ce code doivent être pour vous assurer qu'il se produit qu'une seule fois, lors de l'installation, puis supprimer les fichiers de l'APK? – joon
@joon: Vous pouvez utiliser [link] (http://developer.android.com/reference/android/content/SharedPreferences.html) pour enregistrer une valeur booléenne afin de vous assurer que cela ne se produit qu'une seule fois. En passant, vous ne pouvez pas supprimer les fichiers d'apk. @ Voir plus: [link] (http://developer.android.com/guide/topics/resources/providing-resources.html) – Justin