studio para herramientas desarrollo crear con avanzado aplicaciones android

para - Cómo obtener la ruta a la carpeta de activos de Android en el paquete de la aplicación



herramientas de android studio pdf (3)

¿Podrías mover la carpeta a tu carpeta / raw? Entonces podrías usar:

com.your.package:raw/yourFile

Me gusta esto:

int resourceId = context.getResources().getIdentifier("com.your.package:raw/somefile.txt"); File f = new File(context.getResources().openRawResource(resourceId));

Y aquí hay alguien que lo hace con la carpeta de activos:

Activos de Android con subcarpetas

InputStream is = getAssets().open("subfolder/somefile.txt");

Tengo una estructura de carpetas completa que quiero copiar de mi carpeta de activos. Sin embargo, mContext.getAssets (). Open () parece querer solo un nombre de archivo para que pueda devolver un InputStream, que solo es adecuado para copiar un solo archivo. Lo que necesito es un archivo creado desde la carpeta en mi carpeta de activos para que pueda revisar todos los archivos y carpetas y copiarlos todos.

¿Alguien sabe cómo obtener la ruta a la carpeta de activos para que pueda crear un objeto de archivo?

Edición: después de algunos estudios, parece que no puede acceder a los archivos en los recursos / y raw / carpetas con rutas absolutas para poder crear un objeto de archivo. Probablemente tiene que ver con el cifrado del paquete de la aplicación. ¡Espero que alguien pueda probarme que estoy equivocado!

Edición final: terminé creando una serie de cadenas para guardar los archivos de recursos adicionales:

private static final String[] DEFAULT_ALBUM_FILES = {INTRO_TO_FLASHUM_DIR+"03 Never Can Say Goodbye.m4a", INTRO_TO_FLASHUM_DIR+"11 Bossa Baroque.m4a", INTRO_TO_FLASHUM_DIR+"intro fling.3gp"};

Luego iteré a través de este copiando cada archivo individualmente usando mContext.getAssets (). Open () para obtener InputStream. No creo que actualmente sea posible iterar a través de una carpeta en los activos usando las operaciones normales de archivos.


Use file:///android_asset para acceder a la carpeta de activos y luego siempre puede entregar su subcarpeta allí.

AssetManager assetManager = null; // null ??? Get the AssetManager here. AssetFileDescriptor assetFileDescriptor = null; try{ assetFileDescriptor = assetManager.openFd("file:///android_asset/yourfolder/file"); FileDescriptor fd = assetFileDescriptor.getFileDescriptor(); } catch (Exception e){}


AssetManager am = con.getAssets();//u have get assets path from this code InputStream inputStream = null; inputStream = am.open("file.xml");

o

String file_name="ur.xml" inputStream = am.open("foldername/"+ur);