Lista de archivos en la carpeta de activos y sus subcarpetas
Tengo algunas carpetas con archivos HTML en la carpeta "assets" en mi proyecto de Android. Necesito mostrar estos archivos HTML de las subcarpetas de los activos en una lista. Ya escribí algún código para hacer esta lista.
lv1 = (ListView) findViewById(R.id.listView); // Insert array in ListView // In the next row I need to insert an array of strings of file names // so please, tell me, how to get this array lv1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, filel)); lv1.setTextFilterEnabled(true); // onclick items in ListView: lv1.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> a, View v, int position, long id) { //Clicked item position String itemname = new Integer(position).toString(); Intent intent = new Intent(); intent.setClass(DrugList.this, Web.class); Bundle b = new Bundle(); //I don't know what it's doing here b.putString("defStrID", itemname); intent.putExtras(b); //start Intent startActivity(intent); } });
- ¿Cómo cargar videos de la carpeta de activos? (Para reproducirlas con VideoView)
- ¿Cómo cargar una imagen de los activos?
- Lectura de archivos desde un archivo ZIP en su carpeta de activos de Android
- ¿Es posible obtener la ruta completa de acceso a un archivo de recursos de aplicaciones de Android como una cadena?
- ¿Cuál es el método readStream ()? Yo apenas no puedo encontrarlo dondequiera,
- Cómo copiar archivos de la carpeta 'assets' a sdcard?
- Cómo proteger la carpeta de activos de Android de los hackers
- Cómo reproducir vídeos en android desde la carpeta de activos o la carpeta en bruto?
- Lectura de PDF desde la carpeta de activos usando PDFViewer.jar
- Cómo obtener una cantidad de los archivos en determinada carpeta en los activos?
- Copiando toda la carpeta con su contenido de los activos a los archivos internos de la aplicación /
- Activos de Android con subcarpetas
- Android Cómo leer un recurso desde fuera de la actividad principal
private boolean listAssetFiles(String path) { String [] list; try { list = getAssets().list(path); if (list.length > 0) { // This is a folder for (String file : list) { if (!listAssetFiles(path + "/" + file)) return false; } } else { // This is a file // TODO: add file name to an array list } } catch (IOException e) { return false; } return true; }
Llame al listAssetFiles con el nombre de la carpeta raíz de su carpeta de activos.
listAssetFiles("root_folder_name_in_assets");
Si la carpeta raíz es la carpeta de recursos, llámela con
listAssetFiles("");
Prueba esto funcionará en tu caso
f = getAssets().list(""); for(String f1 : f){ Log.v("names",f1); }
El fragmento anterior mostrará el contenido de la raíz del recurso.
Por ejemplo … si debajo es la estructura del activo ..
assets |__Dir1 |__Dir2 |__File1
La salida del fragmento será …. Dir1 Dir2 File1
Si necesita el contenido del Directorio Dir1
Pase el nombre de directorio en la función de lista.
f = getAssets().list("Dir1");
Espero que esto ayude:
El siguiente código copiará toda la carpeta y su contenido y contenido de la subcarpeta a la ubicación del sdcard:
private void getAssetAppFolder(String dir) throws Exception{ { File f = new File(sdcardLocation + "/" + dir); if (!f.exists() || !f.isDirectory()) f.mkdirs(); } AssetManager am=getAssets(); String [] aplist=am.list(dir); for(String strf:aplist){ try{ InputStream is=am.open(dir+"/"+strf); copyToDisk(dir,strf,is); }catch(Exception ex){ getAssetAppFolder(dir+"/"+strf); } } } public void copyToDisk(String dir,String name,InputStream is) throws IOException{ int size; byte[] buffer = new byte[2048]; FileOutputStream fout = new FileOutputStream(sdcardLocation +"/"+dir+"/" +name); BufferedOutputStream bufferOut = new BufferedOutputStream(fout, buffer.length); while ((size = is.read(buffer, 0, buffer.length)) != -1) { bufferOut.write(buffer, 0, size); } bufferOut.flush(); bufferOut.close(); is.close(); fout.close(); }
- ¿Cómo obtener acceso a todas las tarjetas SD, utilizando la nueva Lollipop API?
- ¿Cómo puedo obtener permisos de root a través del SDK de Android?