Java

Listar ficheros de un directorio con filtrado en Java

En Java, Programación por trellat0 Comentarios

En una aplicación Java, puede ser necesario dar la opción al usuario de seleccionar un fichero para tratarlo, importarlo o lo que se precise. Para ello se requiere recuperar la lista de ficheros del directorio, pero puede surgir el problema de que el usuario seleccione un fichero no válido o que no siga el formato adecuado.

Por esta razón, para hacer la aplicación más robusta y evitar errores por parte del usuario, puede ser de utilidad listar los ficheros de un directorio con filtrado, de forma que sólo recupere aquellos cuyo nombre siga cierto formato y que tengan determinada extensión. Esto se puede conseguir sobrescribiendo el método accept() de la clase FilenameFilter. En este método, se devolverá true si el nombre del fichero cumple con las condiciones que se especifiquen y false en caso contrario, de forma que si devuelve true se añadirá a la lista de ficheros y se devuelve false no. Luego, este objeto de la clase FilenameFilter se le pasará como parámetro al método list() que es el encargado de listar los ficheros de un directorio.

Un ejemplo de uso sería el siguiente. Se seleccionarían los ficheros en “C:\” (variable directorio), cuyo nombre empiece por “USER_” (variable tipoFichero).

String tipoFichero = "USER_";

FilenameFilter filter = new FilenameFilter() {
    @Override
    public boolean accept(File file, String name) {
    if (name.startsWith(tipoFichero)) {
        return true;
    } else {
        return false;
    }
};

File directorio = new File("C:\");
String[] oArchivos = directorio.list(filter);

Si en vez de usar name.startsWith, se usara name.endsWith, se podría, por ejemplo, filtrar por cierta extensión. Como es obvio, también se puede combinar varios filtros según las necesidades. El listado de los ficheros del directorio, quedarán almacenados en el array de Strings llamado oArchivos.

Deja un comentario