Obtener archivos según su extensión (FilenameFilter)
/** * Listar archivos de una carpeta según su extensión. * Ejemplo: listFileByExtension("/home/juan/Video", ".srt", ".mp4"); * * @param filePath path de la carpeta donde listar los archivos. * @param extensions extensiones por las que filtrar. * @return lista de archivos. */ public static File[] listFileByExtension(String filePath, final String... extensions){ File[] listFiles = new File[0]; FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { boolean ret = false; for (String ext : extensions) { if(name.toLowerCase().endsWith(ext)){ ret = true; break; } } return ret; } }; File file = new File(filePath); if(file.exists()){ listFiles = file.listFiles(filter); } return listFiles; }
FilenameFilter es una interfaz que contiene solamente el método public boolean accept(File dir, String name). Este método devuelve:
- true: el archivo se añade a la lista a devolver.
- false: el archivo no se añade a la lista a devolver.
Este método accept se llama automáticamente al realizar file.listFiles(filter).
Comentarios
Publicar un comentario