una samsung proteger poner ocultar musica mis imagenes hacer galeria fotos crear contraseƱa con como celular carpetas carpeta archivos android android-file

android - samsung - Lista todos los archivos de toda la carpeta en una sola lista



ocultar imagenes galeria android (3)

He modificado la solución de Vyacheslav porque solo necesitaba nombres de archivos dentro del directorio. Tal vez sea de ayuda para alguien.

... List<String> files = getList(new File("YOUR ROOT")); ... private List<String> getList(File parentDir, String pathToParentDir) { ArrayList<String> inFiles = new ArrayList<String>(); String[] fileNames = parentDir.list(); for (String fileName : fileNames) { if (fileName.toLowerCase().endsWith(".txt") || fileName.toLowerCase().endsWith(".rtf") || fileName.toLowerCase().endsWith(".txd")) { inFiles.add(pathToParentDir + fileName); } else { File file = new File(parentDir.getPath() + "/" + fileName); if (file.isDirectory()) { inFiles.addAll(getList(file, pathToParentDir + fileName + "/")); } } } return inFiles; }

Hola, estoy buscando la solución para listar todos los archivos del dispositivo raíz / dispositivo Android.

Supongamos que hay 3 carpetas dentro del directorio raíz, pero quiero mostrar todos los archivos en todas estas carpetas en una sola lista ...

Ahora si estoy usando

File f=new File("/sdcard");

Luego listará todos los archivos de la carpeta sdcard solo ... y si usaré

File f=new File("/download");

Luego listará todos los archivos de la carpeta de descarga solo ... y si los usaré

File f=new File("/");

A continuación, se enumerarán solo los archivos de directorio raíz ... no los archivos dentro de / sdcard o / download ..

Entonces, ¿qué pasos debo seguir para enumerar todos los archivos con un filtro para enumerar solo archivos .csv de todas las carpetas dentro de la raíz?

Gracias..


Prueba esto:

..... List<File> files = getListFiles(new File("YOUR ROOT")); .... private List<File> getListFiles(File parentDir) { ArrayList<File> inFiles = new ArrayList<File>(); File[] files = parentDir.listFiles(); for (File file : files) { if (file.isDirectory()) { inFiles.addAll(getListFiles(file)); } else { if(file.getName().endsWith(".csv")){ inFiles.add(file); } } } return inFiles; }

o variante sin recursión:

private List<File> getListFiles2(File parentDir) { List<File> inFiles = new ArrayList<>(); Queue<File> files = new LinkedList<>(); files.addAll(Arrays.asList(parentDir.listFiles())); while (!files.isEmpty()) { File file = files.remove(); if (file.isDirectory()) { files.addAll(Arrays.asList(file.listFiles())); } else if (file.getName().endsWith(".csv")) { inFiles.add(file); } } return inFiles; }


Puedes usar el siguiente método,

private int readLogList( String filePath ) { File directory = Environment.getExternalStorageDirectory(); File folder = new File( directory + ConstantCodes.FILE_SEPARATOR + filePath ); if ( !folder.exists() ) { return 0; } return folder.list().length; }