本文实例讲述了java实现递归文件列表的方法。分享给大家供大家参考。具体如下:
filelisting.java如下:
java.util。*;インポートjava.io。*;/***指定されたディレクトリの下で再帰ファイルリストをインポート。 /***使用を実証します。 * * @param aargs- <tt> aargs [0] </tt>は、読み取ることができる既存の *ディレクトリのフルネームです。 */ public static void main(string ... aargs)throws filenotfoundexception {file startingdirectory = new file(aargs [0]); list <file> files = filelisting.getFileLelisting(startingDirectory); //すべてのファイル名を印刷して、file.compareto()for(file:files){system.out.println(file); }} /** *ディレクトリツリーを再帰的に歩き、見つかったすべてのファイルのリストを返します。リストは、file.comPareTo()を使用してソートされます。 * * @Param AstartingDirは有効なディレクトリであり、読み取ることができます。 */ static public list <file> getFileLelisting(ファイルASTARTINGDIR)SLOWS FILENOTFOUNDEXCEPTION {VALIDATEDIRECTORY(ASTARTINGDIR); List <file> result = getFileListingNosort(AstartingDir); collections.sort(result);返品結果; } // private // static private list <file> getFileLelistingNosort(ファイルASTARTINGDIR)SLOWS FILENOTFOUNDEXCEPTION {list <file> result = new ArrayList <file>(); file [] filesanddirs = astartingdir.listfiles(); List <file> filesdirs = arrays.aslist(filesanddirs); for(file:filesdirs){result.add(file); //ディレクトリの場合でも常に追加します(!file.isfile()){//ディレクトリでなければなりません//再帰通話! List <file> deeperList = getFileListingNoSort(file); result.addall(deeperlist); }} return result; } /***ディレクトリは、存在する場合は有効で、ファイルを表しておらず、読み取ることができます。 */ static private void validatedirectory(file adirectory)filenotfoundexception {if(adirectory == null){throw new IllegalargumentException( "ディレクトリはnullではないはずです。"); } if(!adirectory.exists()){throw new filenotfoundexception( "ディレクトリは存在しません:" + adirectory); } if(!adirectory.isdirectory()){新しいIllegalArgumentException( "Is not Directory:" + Adirectory); } if(!adirectory.canread()){新しいIllegalargumentException( "ディレクトリは読み取れない:" + adirectory); }}}希望本文所述对大家的java程序设计有所帮助。