コードのアイデア:
フォルダー内のすべてのサブフォルダーをループする場合は、再帰を使用する必要があります。
まず、パスが存在するかどうかを判断します。
はい:ファイルを取得します
それがフォルダーであるかどうかを判断します。
はい:自分自身に電話して、サブフォルダーでコンテンツを取得し続けます
いいえ:ファイルの接尾辞を決定します。それが一致する場合、出力されます。
いいえ:出力プロンプト
パッケージcom.hanqi.maya.util; import java.io.file; import java.util.scanner; public class testguolv {public static void main(string [] args){scanner sc = new scanner(system.in); system.out.println( "探すためにパスを入力してください");文字列s = sc.nextline();ファイルfile = new file(s); filesum(file、1); } public static void filesum(file f、int len){if(f.exists()){//パスがfile [] files = f.listfiles()に存在するかどうかを判断します。 //パスの下にファイル名を取得します(ファイルfi:files){// cyclic出力ファイル名if(fi.isdirectory()){//フォルダーprintblank(len); System.out.println(fi.getName()+"Folder"); filesum(fi、len+1); //自分自身を呼び続けます} else {printblank(len); //出力スペースif(fi.getname()。endswith( "。java")){//ファイルの場合は、「.java "suffixであるかどうかを判断します。 「接尾辞」の場合は、system.out.println(fi.getName())を出力します。 }}}}} else {system.out.println( "ファイルは存在しません!!!"); }} public static void printblank(int len){for(int i = 0; i <len; i ++){// output。 Folder Hierarchy System.out.print( "。")を区別するには; }}}要約と質問:
昨日、出力フォルダー内のすべてのファイルについて学びましたが、今日、フォルダーの下に指定されたサフィックスが付いたファイルを見つけるためにわずかな変更を加えました。
出力時に階層がないため、レベルがクリアできるように出力ファイルの前にスペースを追加するループを書きました。その後、スペースは漢字に十分に透明ではないことがわかりました。漢字に遭遇すると、いくつかのスペースがインデントしますが、シンボルを使用する場合はこのようにはなりません。
指定された接尾辞名を制御する方法の問題もあり、解決されていません。
上記の記事Javaは、単純なファイルフィルター機能が私があなたと共有したすべてのコンテンツであると実装しています。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。