本文实例讲述了 java 实现递归文件列表的方法。分享给大家供大家参考。具体如下 :
Filelisting.java 如下 :
import java.util.*; import java.io.*;/*** Listado de archivos recursivos en un directorio especificado.** @author javapractices.com* @author Alex Wong* @Author Usuario anónimo*/public Final Clase Filelisting { /*** demostrar uso. * * @param aargs - <tt> aargs [0] </tt> es el nombre completo de un directorio * existente que se puede leer. */ public static void main (string ... aargs) lanza FileNotFoundException {Archivo inicialDirectory = nuevo archivo (aargs [0]); List <Sche> files = fileListing.getFileListing (startingDirectory); // Imprima todos los nombres de archivo, en el orden de file.compareto () para (archivo de archivo: archivos) {system.out.println (archivo); }} /** * Camina recursivamente un árbol de directorio y devuelve una lista de todos los * archivos encontrados; La lista se clasifica usando file.compareto (). * * @param astartingdir es un directorio válido, que se puede leer. */ STATIC Public List <Sche> getFileListing (File AstartingDir) lanza FileNotFoundException {ValidedIrectory (AstartingDir); Lista <Sche> result = GetFileListingNoSort (AstartingDir); Colección.sort (resultado); resultado de retorno; } // privado // Lista privada estática <Sche> getFilelistingNoSort (File AstartingDir) lanza FileNotFoundException {list <Sche> result = new ArrayList <Schil> (); Archivo [] filesanddirs = astartingDir.listFiles (); Lista <Sche> filesDirs = arrays.aslist (filesanddirs); for (archivo archivo: filesdirs) {result.add (archivo); // siempre agregue, incluso si el directorio if (! file.isfile ()) {// debe ser un directorio // llamada recursiva! List <Schil> DeeperList = getFileListingNoSort (archivo); resultado.addall (profundo); }} Resultado de retorno; } /*** El directorio es válido si existe, no representa un archivo y se puede leer. */ static private void validedIrectory (archivo adirectory) lanza FileNotFoundException {if (adirectory == null) {throw newleLarGumentException ("El directorio no debe ser nulo"); } if (! adirectory.exists ()) {tire nueva filenotfoundException ("El directorio no existe:" + adirectory); } if (! adirectory.isDirectory ()) {throw newleArGumumentException ("no es un directorio:" + adirectory); } if (! adirectory.canRead ()) {tire nueva ilegalargumentException ("El directorio no se puede leer:" + adirectorio); }}}希望本文所述对大家的 java 程序设计有所帮助。