Per filtrare file tramite la loro estensione è molto comodo utilizzare l’interfaccia java.io.FilenameFilter.
Tale interfaccia, presente fin dalla versione 1.4 di Java, ha un solo metodo con firma
public boolean accept(File dir, String name) |
|
Dove si implementa la logica di filtro che vogliamo.
Quindi per filtrare i file secondo la logica implementata basta chiamare il metodo della classe java.io.File
public String[] list(FilenameFilter filter) |
|
Vediamo un esempio in cui abbiamo una classe generica di filtro in base alla estensione file, che accetta come costruttore l’estensione in base alla quale si vuole filtrare e che implementa FilenameFilter.
package it.test; import java.io.File; import java.io.FilenameFilter; class GenericFilter implements FilenameFilter { public static final String PDF=".pdf"; public static final String EXCEL=".xls"; String estensione; GenericFilter(String estensione){ this.estensione=estensione; }
@Override public boolean accept(File dir, String name) { return name.toLowerCase().endsWith(estensione); } } public class FileTest { public static void main(String[] args){ try { String directory="c:\\temp"; File f=new File(directory); FilenameFilter filtro=new GenericFilter(GenericFilter.EXCEL); String[] listaExcel=f.list(filtro); if(listaExcel!=null){ for(String s:listaExcel){ System.out.println(s); } } else { System.out.println(String.format("Lista vuota dentro directory %s", directory)); } } catch(Exception ex){ ex.printStackTrace(); } }
}
|
|
Nessun commento:
Posta un commento