Sto provando a creare una cartella e diverse sottodirectory all'interno della scheda SD ... Poi voglio trasferire i file che ho memorizzato in/res/raw in quella cartella ... Inoltre, voglio solo questo capita una volta, la prima volta che il programma viene eseguito. Mi rendo conto che questo è ridicolmente aperto e che sto chiedendo molto ... ma qualsiasi aiuto sarebbe molto apprezzato.Android: come creare una directory sulla scheda SD e copiare i file da/res/raw ad esso?
risposta
Ciò copierà tutti i file nella sottocartella "clipart" della cartella di asset .apk nella sottocartella "clipart" della cartella di vostra applicazione sulla scheda 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);
}
}
ho sperimentato un problema simile quando si utilizza mkdirs(), tuttavia, perché l'esecuzione del comando:
mkdir uno/due
non riesce su Linux, quindi il metodo di suc http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#mkdirs() fallisce anche troppo. Immagino che questo significhi che non c'è modo di usare mkdirs su Android? La mia (probabilmente piuttosto hacky) work-around è stato quello di creare ogni directory necessaria a parte:
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) funziona. L'ho provato su Android 2.1 (API Livello 7) – Mudassir
- 1. Non so come copiare i file sulla scheda SD nell'emulatore Genymotion Android
- 2. Permesso di scrivere sulla scheda SD
- 3. Android: salva l'immagine dall'URL sulla scheda SD
- 4. Creare una directory e copiare un file
- 5. Scansione scheda SD Android per nuovi file
- 6. Inserire manualmente i file nell'emulatore di Android Scheda SD
- 7. Dove l'emulatore Android memorizza i file della scheda SD?
- 8. Come copiare le immagini sulla scheda SD dell'emulatore Android dal disco rigido?
- 9. Tutti i dispositivi Android hanno una scheda SD interna?
- 10. Copia di directory e file dalla cartella res/raw alla scheda sd - android
- 11. Problemi con scheda SD Android
- 12. Memorizza l'immagine bitmap sulla scheda SD in Android
- 13. Impossibile spostare un'app sulla scheda SD
- 14. Come eliminare automaticamente i dati scritti sulla scheda sd sulla disinstallazione dell'app Android?
- 15. Come creare una directory in Android?
- 16. Android spostarsi sul comportamento della scheda SD
- 17. scrive file su scheda sd e non su memoria USB
- 18. Android scrittura alla cartella della scheda SD
- 19. Copiare i file da una directory in una directory esistente
- 20. Android KitKat 4.4 cartella su scheda SD
- 21. Come riprodurre i video dalla scheda SD
- 22. Come verificare se un file esiste in una directory nella scheda SD
- 23. Riavvia il servizio per l'app sulla scheda SD quando viene rimossa la scheda SD
- 24. Android Salva immagine su scheda SD
- 25. Come si esegue il backup di un file di database sulla scheda SD su Android?
- 26. Installazione di app Android senza scheda SD
- 27. Memorizzazione di dati su scheda SD in Android
- 28. Come posso scaricare un file video su una scheda SD?
- 29. Android: File IO dalla scheda SD utilizzando l'NDK
- 30. Come aprire la cartella della scheda SD in Android AVD?
da dove viene questo codice bisogno di essere per assicurarsi che accade solo una volta, al momento dell'installazione, e quindi rimuovere i file dal APK? – joon
@joon: puoi usare [link] (http://developer.android.com/reference/android/content/SharedPreferences.html) per salvare un valore booleano per assicurarti che accada solo una volta. A proposito, non puoi cancellare i file da apk. @ Vedi altro: [link] (http://developer.android.com/guide/topics/resources/providing-resources.html) – Justin