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