• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ディレクトリの階層構造をツリー表示したい)

ディレクトリの階層構造をツリー表示したい

このQ&Aのポイント
  • 指定したディレクトリ以下のディレクトリの階層構造を、インデントをつけてツリー表示するプログラムを作成したい。
  • 現在はディレクトリ名を表示することはできているが、インデントをうまくつける方法に悩んでいる。
  • どのような方法や修正を行えば、ディレクトリの階層構造をツリー表示できるのか教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんばんは。 >インデントをうまくつけられずに困っています。  インデントはメソッドの引数で指定するように作って、メソッドを呼ぶときに現在の階層に一つ足した数を渡してやればいいのではないでしょうか。  メソッド内でインデントの数だけ空白なりタブなりを追加してやればいいと思います。 (コンパイルするときは全角スペースを半角スペースに変換してからにしてください) import java.io.*; public class DirTree {   public static void main(String[] args) {     showDirName(new File("C:\\hoge\\hoge"), 0);   }      static void showDirName(File dir, int indent) {     if (dir.isDirectory()) {       StringBuffer sb = new StringBuffer();       //インデントの深さの分までタブを入れる       for(int i = 0; i < indent; i++) {         sb.append("\t");       }       sb.append(dir.getName());       System.out.println(sb.toString());              File[] dirList = dir.listFiles();       for (int i = 0; i < dirList.length; i++) {         //現在のインデントに1足して再帰的にメソッドを呼ぶ         showDirName(dirList[i], indent + 1);       }     }   } }

mikku_ku
質問者

お礼

解決しました、ありがとうございました! for文でまわして、StringBufferを使えばよかったのですね…大変参考になりました。 ご丁寧にソースまでつけてくださって本当にどうもありがとうございました!

関連するQ&A