5

Me pregunto cómo mostrar los archivos de un directorio en un ListView`. Los archivos se pueden enumerar con:Mostrando una lista de archivos en un ListView

File dir = new File(dirPath); 
File[] filelist = dir.listFiles(); 

y se añaden a la ListView través ArrayAdapter pero no reciben el uso del ArrayAdapter.

+0

es exactamente lo que su pregunta? hay muchas preguntas sobre SO sobre 'cómo administrar un arrayAdapter', 'cómo crear un listView'. Para ti, creo que solo quieres mostrar el nombre de diferentes archivos de una carpeta, en una vista de lista. Deberá pasar un ArrayList of Strings a su adaptador. Mira la documentación oficial hay algunos ejemplos sobre cómo hacer un ListView. –

Respuesta

14

supongo que desea mostrar los nombres de los archivos de ese directorio por lo que podría intentar esto:

File dir = new File(dirPath); 
File[] filelist = dir.listFiles(); 
String[] theNamesOfFiles = new String[filelist.length]; 
for (int i = 0; i < theNamesOfFiles.length; i++) { 
    theNamesOfFiles[i] = filelist[i].getName(); 
} 

El adaptador para usar con la lista:

new ArrayAdapter<String>(this, android.R.layout.simple_list_item, theNamesOfFiles); 

Para algo más complicado que mostrar los nombres de los archivos, tienes que implementar un adaptador personalizado.

+0

¿Qué hay del nombre del archivo más la fecha de creación/modificación? – Si8

+0

@ SiKni8 La clase 'Archivo' desafortunadamente expone solo la fecha de la última modificación de archivo y no la fecha de creación. Para mostrar que además del nombre del archivo, puede usar un adaptador personalizado o un 'Hashmap' que contenga los datos y usar un' SimpleAdapter'. – Luksprog

+0

Gracias por la respuesta. Creo que la fecha modificada debería ser suficiente para mí. Una de las preguntas que tengo es que quiero mostrar un ícono personalizado seguido del nombre de archivo arriba a la derecha del ícono y la fecha de modificación abajo a la derecha del ícono. ¿Cómo lo lograría? – Si8

1

O puede usar algo como esto para una ordenada String de filenames:

File dataDirectory = Environment.getDataDirectory(); 
File fileDir = new File(dataDirectory, "data/com.yourapp.app/files"); 

String[] listItems = fileDir.list(); 
Arrays.sort(listItems); 
Cuestiones relacionadas