Estoy intentando crear una carpeta y varios subdirectorios dentro de ella en la tarjeta SD ... Entonces quiero transferir los archivos que he almacenado en/res/raw a esa carpeta ... Además, quiero que esto solo suceder una vez, la primera vez que se ejecuta el programa. Me doy cuenta de que esto es ridículamente abierto, y que estoy pidiendo mucho ... pero cualquier ayuda sería muy apreciada.Android: ¿Cómo crear un directorio en la tarjeta SD y copiar archivos de/res/raw a él?
Respuesta
Esto copiará todos los archivos en la subcarpeta "clip" de la carpeta de activos .apk a la subcarpeta "clip" de la carpeta de su aplicación en la tarjeta 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);
}
}
que experimentaron un problema similar cuando se usa mkdirs(), sin embargo debido a la ejecución del comando:
mkdir uno/dos
un error en Linux, entonces el método subse http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#mkdirs() quently también falla. ¿Supongo que esto significa que no hay forma de usar mkdirs en Android? Mi (probablemente bastante hacky) solución alternativa era crear cada directorio necesaria por separado:
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) funciona. Lo probé en Android 2.1 (API nivel 7) – Mudassir
- 1. Cómo guardar archivos en la tarjeta SD
- 2. Comprobar si existe directorio en la tarjeta SD de Android
- 3. ¿Cómo mostrar archivos en la tarjeta SD en un ListView?
- 4. Escribiendo a la tarjeta SD
- 5. Android guardar Bitmap a tarjeta SD
- 6. Permiso para escribir en la tarjeta SD
- 7. Android - eliminar archivos en la tarjeta SD al desinstalar
- 8. Android Guardar imagen en la tarjeta SD
- 9. ¿Existe un límite para la cantidad de archivos en un directorio en una tarjeta SD?
- 10. Almacenamiento de datos en la tarjeta SD en Android
- 11. ¿Cómo puedo crear un nuevo directorio en la tarjeta SD mediante programación?
- 12. Eliminar una carpeta en la tarjeta SD
- 13. ¿Cómo copiar imágenes a la tarjeta sd del emulador de Android desde el disco duro?
- 14. directorios de copia y los archivos de res/carpeta prima a la tarjeta SD - android
- 15. Mover aplicaciones a la tarjeta SD
- 16. Ubuntu - Error: Error al crear la tarjeta SD
- 17. Cómo verificar si un archivo existe en un directorio en la tarjeta SD
- 18. ¿Cómo reproducir archivos mp3 desde la tarjeta SD interna y externa en Android?
- 19. Características de la tarjeta SD Android en Samsung Galaxy
- 20. ¿Cómo saber si la tarjeta SD está montada en Android?
- 21. mkdirs devuelve falso para el directorio en la tarjeta SD mientras el directorio principal es escribible
- 22. cómo acceder a los archivos en el teléfono o en la tarjeta de memoria SD
- 23. Compruebe si existe archivo en la tarjeta SD en Android
- 24. ¿Cómo copiar mis archivos de un directorio a otro?
- 25. Servicio de reinicio para la aplicación en la tarjeta SD Cuando se repone la tarjeta SD
- 26. Cómo crear una carpeta privada en una tarjeta SD
- 27. Android Guardado mapa de bits creado en el directorio de la tarjeta SD
- 28. Cómo reproducir vídeos desde la tarjeta SD
- 29. Android: ¿buenas prácticas para organizar directorios y archivos en la tarjeta SD de almacenamiento?
- 30. ¿Cómo eliminar un archivo de la tarjeta SD?
dónde viene este código tienen que ser para asegurarse de que sólo ocurre una vez, en la instalación, y luego eliminar los archivos de la APK? – joon
@joon: puede usar [link] (http://developer.android.com/reference/android/content/SharedPreferences.html) para guardar un valor booleano y asegurarse de que solo ocurra una vez. Por cierto, no puede eliminar archivos de apk. @ Ver más: [link] (http://developer.android.com/guide/topics/resources/providing-resources.html) – Justin