本文实例讲述了 Java 实现递归文件列表的方法。分享给大家供大家参考。具体如下 :
Filelisting.java 如下 :
Importieren Sie Java.util.*; Importieren Sie Java.io. /*** Gebrauch demonstrieren. * * @param aargs - <tt> aArgs [0] </tt> ist der vollständige Name eines vorhandenen * Verzeichnisses, das gelesen werden kann. */ public static void main (String ... aargs) löscht FilenotFoundException {Datei startDirectory = neue Datei (AARGS [0]); Liste <Datei> file = filelisting.getFilelisting (Startdirektory); // Alle Dateinamen in der Reihenfolge von File.comPareto () für (Dateidatei: Dateien) {System.out.println (Datei) ausdrucken; }} /** * rekursiv einen Verzeichnisbaum wandern und eine Liste aller gefundenen Dateien zurückgeben; Die Liste wird mit File.comPareto () sortiert. * * @param astartingdir ist ein gültiges Verzeichnis, das gelesen werden kann. */ statische öffentliche Liste <Datei> getFilelisting (Datei astartingdir) löscht FilenotFoundException {validatedirectory (astartingdir) aus; Liste <Datei> result = getFilelistingnosort (astartingdir); Sammelns.sort (Ergebnis); Rückgabeergebnis; } // private // statische private Liste <Datei> getFilelistingNoSort (Datei astartingdir) löscht FilenotFoundException {list <Datei> result = new ArrayList <Datei> () aus; File [] fileAsAnddirs = astartingdir.listfiles (); List <Datei> filesDirs = arrays.aslist (Dateienanddirs); für (Dateidatei: fileDirs) {result.add (Datei); // immer hinzufügen, auch wenn Verzeichnis if (! file.isfile ()) {// muss ein Verzeichnis sein // rekursiver Anruf! LIST <Datei> tiefenlist = getFilelistingNoSort (Datei); result.addall (tiefere Liste); }} Rückgabeergebnis; } /*** Verzeichnis ist gültig, wenn es existiert, keine Datei darstellt und gelesen werden kann. */ static private void validatedirectory (Datei adirectory) löscht FilenotFoundException {if (adirectory == null) {neue illegalArgumentException ("Verzeichnis sollte nicht null sein."); } if (! adirectory.exists ()) {neue FilenotFoundException ("Verzeichnis existiert nicht:" + adirectory); } if (! adirectory.isDirectory ()) {neue IllegalArgumentException werfen ("ist kein Verzeichnis:" + adirectory); } if (! adirectory.canread ()) {neue illegalArgumentException ("Verzeichnis kann nicht gelesen werden:" + adirectory); }}}希望本文所述对大家的 Java 程序设计有所帮助。