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); } }); 

 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 puedo transferir un dispositivo de prueba de base de datos al dispositivo desde mi aplicación de prueba de unidad
  • ¿Cómo cargar videos de la carpeta de activos? (Para reproducirlas con VideoView)
  • ¿Cómo cargar una imagen de los activos?
  • Creación de activos de imagen en Android Studio
  • Cómo obtener una cantidad de los archivos en determinada carpeta en los activos?
  • AndroidPDFViewer - No se puede abrir el documento pdf en mi aplicación
  • Android assetManager
  • Lectura de PDF desde la carpeta de activos usando PDFViewer.jar
  • GetAssets (); De otra clase
  • Android Cómo leer un recurso desde fuera de la actividad principal
  • Cómo proteger la carpeta de activos de Android de los hackers
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.