FilenameFilter è un’interfaccia in JavaSW che viene utilizzata per filtrare i nomi dei file, come quelli restituiti da una chiamata al metodo listFiles() di un oggetto File. Se listFiles () viene chiamato senza parametri, restituisce tutti gli oggetti File in una directory. Se passiamo un filtro come parametro, possiamo restituire selettivamente un sottoinsieme di quegli oggetti.
La creazione di un oggetto che implementa FilenameFilter richiede l’implementazione del metodo accept(File dir, String name). L’oggetto dir è la directory principale del file e name è il nome del file. Se accept () restituisce true, il file verrà restituito nella matrice di oggetti File dalla chiamata a listFiles (). Se accept () restituisce false, il file non viene restituito dalla chiamata a listFiles ().
L’oggetto textFilter in DirectoryContents restituisce true solo se un oggetto File termina in.txt. Di conseguenza, rifiuta tutti gli altri nomi di file e directory. Si noti che la chiamata a f. listFiles () passa il textFilter come argomento.
DirectoryContents.java
L’esecuzione di DirectoryContents genera il seguente output della console. Anche se altri file e directory sono presenti in C:\projects\workspace\testing\, solo il .i file txt vengono visualizzati nei risultati.
file:C:\projects\workspace\testing\file1.txt file:C:\projects\workspace\testing\file2.txt