本文實例講述了java::
filelisting.java如下:
導入java.util。*; import java.io。*;/***在指定目錄下列出了遞歸文件。** @author javapractices.com* @author alex wong* @author匿名用戶*/public final class file fileListing { /***證明使用。 * * @param aargs- <tt> aargs [0] </tt>是可以讀取的現有 *目錄的全名。 */ public static void main(字符串... aargs)拋出filenotfoundexception {file startingDirectory = new file(aargs [0]);列表<File> files = fileListing.getFileListing(startingDirectory); //打印出所有文件名,在file.compareto()的順序中(文件文件:文件){system.out.println(file); }} /** *遞歸走一棵目錄樹,然後返回找到所有 *文件的列表;使用file.compareto()對該列表進行排序。 * * @param astartingdir是一個有效的目錄,可以讀取。 */靜態公共列表<file> getFileListing(file astartingdir)拋出filenotfoundexception {varrialateDirectory(astartingdir); List <file>結果= getFileListingNosort(astartingdir); collections.sort(結果);返回結果; } // private // static private list <file> getFileListingNosort(file astartingdir)拋出fileNotfoundException {list <file> result = new arraylist <new arraylist <file>(); file [] filesanddirs = astartingdir.listfiles(); list <file> filesdirs = arrays.aslist(filesanddirs); for(文件文件:filesdirs){result.add(file); //始終添加,即使目錄(!file.file.isfile()){//必須是目錄//遞歸調用! List <file> deeperList = getFileListingNosort(file); result.Addall(DEEPERLIST); }}返回結果; } /***目錄如果存在,則不代表文件,並且可以讀取。 */靜態私有void驗證的eRectory(文件adirectory)拋出filenotfoundexception {if(adirectory == null){拋出新的new IllegalArgumentException(“目錄不應為null。”); } if(!adirectory.exists()){拋出新的filenotfoundexception(“目錄不存在:” + adirectory); } if(!adirectory.isdirectory()){投擲新的illegalargumentException(“不是目錄:” + adirectory); } if(!adirectory.canread()){拋出新的illegalargumentException(“目錄無法讀取:” + adirectory); }}}}希望本文所述對大家的爪哇程序設計有所幫助。