2011-11-22 15 views
7

Tengo un requisito para obtener todos los archivos en un directorio que tiene una extensión específica (por ejemplo, .txt). Debería poder enumerar todos los archivos que tienen la extensión '.txt' y '.TXT' (es decir, debe ser insensible a las mayúsculas y minúsculas). He escrito la siguiente clase para esto. ¿Qué cambio debería hacer en la siguiente clase para lograr esto?Java FilenameFilter

class OnlyExt implements FilenameFilter { 
    String ext; 

    public OnlyExt(String ext) { 
     this.ext = "." + ext; 
    } 

    public boolean accept(File dir, String name) { 
     return name.endsWith(ext); 
    } 
} 

bueno, lo intente name.toLowerCase().endsWith(ext); en el accept(), pero que no funcionó.

Gracias de antemano.

Respuesta

14

También necesita minúsculas de la extensión.

class OnlyExt implements FilenameFilter { 
    String ext; 

    public OnlyExt(String ext) { 
     this.ext = ("." + ext).toLowerCase(); 
    } 

    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(ext); 
    } 
} 

También, podría ser una buena idea para comprobar en el constructor para ver si ya hay un "" y no anteponer a otro si es así.