FilenameFilter ist eine Schnittstelle in JavaSW, mit der Dateinamen gefiltert werden, z. B. solche, die von einem Aufruf der listFiles() -Methode eines Dateiobjekts zurückgegeben werden. Wenn listFiles() ohne Parameter aufgerufen wird, werden alle Dateiobjekte in einem Verzeichnis zurückgegeben. Wenn wir einen Filter als Parameter übergeben, können wir selektiv eine Teilmenge dieser Objekte zurückgeben.
Wenn Sie ein Objekt erstellen, das FilenameFilter implementiert, müssen Sie die Methode accept(File dir, String name) implementieren. Das dir-Objekt ist das übergeordnete Verzeichnis der Datei, und name ist der Name der Datei. Wenn accept() true zurückgibt, wird die Datei im Array der Dateiobjekte aus dem Aufruf von listFiles() zurückgegeben. Wenn accept() false zurückgibt, wird die Datei vom Aufruf von listFiles() nicht zurückgegeben.
Das textFilter-Objekt in DirectoryContents gibt nur true zurück, wenn ein File-Objekt mit endet .txt. Infolgedessen werden alle anderen Datei- und Verzeichnisnamen abgelehnt. Beachten Sie, dass der Aufruf von f.listFiles() den textFilter als Argument übergibt.
Verzeichnisinhalte.java
Das Ausführen von DirectoryContents führt zur folgenden Konsolenausgabe. Obwohl andere Dateien und Verzeichnisse in C:\projects\workspace\testing \, nur die .txt-Dateien werden in den Ergebnissen angezeigt.
file:C:\projects\workspace\testing\file1.txt file:C:\projects\workspace\testing\file2.txt