Javaを使ってディレクトリの階層構造をツリー形式で表示する
by @ukiuki
昔に自分も作ったことがあるので、Gistにソースを入れました。
オプションで出力内容を設定できます。
/**
* ディレクトリ階層を出力します。
* @param path 処理対象のディレクトリ
* @param depth 階層数(0の場合は、すべて)
* @param containsFile ファイルも出力するかどうか
* @param outputPath 出力先ファイル(nullの場合は標準出力)
* @throws IOException ファイルI/Oに問題が発生した場合
*/
public static void tree(String path, int depth, boolean containsFile, String outputPath) throws IOException
Windows以外のOSでファイル名がソートされない場合があるかもしれないので、次のように処理しています。
- FileVisitorではすぐ出力せずに、一旦ノード構造を構築し
- Collections.sort()で、ノード構造をファイル名でソートしてから
- printOut()でノード構造を再帰的に出力する