Ejercicio de la clase File(II)

Otro ejercicio de la clase File.

Ejercicio

Escribe un programa que muestre los nombres de los archivos con extension “.java” contenidos en el directorio “C:/nuestrosArchivos”.

Como puede hacerse

Para filtrar los nombres de los archivos proporcionados por list() es necesario suministrarle un objeto que implemente la interfaz FileNameFilter. Esta interfaz define el método accept() que devuelve un valor booleano para indicar si se incluye o no en la lista el nombre del archivo. El método list() incluye en el array que devuelve sólo los nombres para los que accept() devuelve true. Se implementa accept() de forma que solo devuelva true si el nombre corresponde a un archivo (NO A UN DIRECTORIO), tiene una ´longitud suficiente para terminar por la extensión “.java” y, por supuesto, termina efectivamente en esta extensión. Un objeto File representa un elemento del sistema de archivos. Por esta razón proporciona métodos como getAbsolutePath(), que devuelve una cadena con la ruta absoluta, isFile() que indica si la ruta corresponde a un archivo o isDirectory() para indicar si se trata de un directorio

Solución

import java.io.File;
import java.io.FilenameFilter;

public class EjercicioFile2 implements FilenameFilter {

    @Override
    public boolean accept(File dir, String name) {
        boolean r = true;
        if (new File(dir.getAbsolutePath() + “/” + name).isFile() && name.length() > 5
                && name.toLowerCase().lastIndexOf(“.java”) == name.length() – 5) {
            return true;
        }
        return false;
    }

}

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s