本文实例讲述了 Java 实现递归文件列表的方法。分享给大家供大家参考。具体如下 :
Filelisting.java 如下 :
Impor java.util.*; import java.io.*;/*** Daftar file rekursif di bawah direktori yang ditentukan.** @author javapractices.com* @author Alex Wong* @author Anonymous pengguna*/Public Final Class FileListing {{ /*** Tunjukkan penggunaan. * * @param aargs - <tt> aargs [0] </tt> adalah nama lengkap dari direktori * yang ada yang dapat dibaca. */ public static void main (string ... aargs) melempar filenotfoundException {file startDirectory = file baru (aargs [0]); Daftar <FILE> File = FileListing.GetFileListing (StartingDirectory); // Cetak semua nama file, dalam urutan file.compareto () untuk (file file: file) {System.out.println (file); }} /** * secara rekursif berjalan pohon direktori dan mengembalikan daftar semua * file yang ditemukan; Daftar ini diurutkan menggunakan file.compareto (). * * @param Astartingdir adalah direktori yang valid, yang dapat dibaca. */ Daftar Publik Statis <FILE> GetFileListing (File AstARTingDir) melempar FileNotFoundException {ValidatedIreCtory (AstartingDir); Daftar <FILE> result = getFileListingNoSort (asTartingDir); Collections.sort (hasil); hasil pengembalian; } // Private // Daftar Privat Statis <Ship> getFileListingNoSort (File AstartingDir) melempar FileNotFoundException {list <file> hasil = new ArrayList <FILE> (); File [] fileDdirs = astartingdir.listFiles (); Daftar <FILE> fileDirs = arrays.aslist (fileDdirs); untuk (file file: fileDirs) {result.add (file); // Selalu tambahkan, bahkan jika direktori if (! File.isfile ()) {// Harus menjadi direktori // panggilan rekursif! Daftar <FILE> DEEPERLIST = getFileListingNoSort (file); result.addall (deeperlist); }} hasil pengembalian; } /*** Direktori valid jika ada, tidak mewakili file, dan dapat dibaca. */ static private void validatedIrEctory (file adirectory) melempar filenotfoundException {if (adirectory == null) {lempar baru ilegalargumentException ("direktori tidak boleh null."); } if (! adirectory.exists ()) {lempar filenotfoundException baru ("direktori tidak ada:" + adirectory); } if (! Adirectory.isdirectory ()) {lempar baru ilegalargumentException ("bukan direktori:" + adirectory); } if (! adirectory.canread ()) {lempar baru ilegalargumentException ("direktori tidak dapat dibaca:" + adirectory); }}}希望本文所述对大家的 Java 程序设计有所帮助。