本文实例讲述了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); }}}}希望本文所述对大家的爪哇程序设计有所帮助。