読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

ディレクトリ階層をツリー表示するプログラム

Ruby

ローカル環境にtreeが入っていなかったので、rubyで書いてみました。

#
#== ディレクトリ階層をツリー表示する。
#
def tree( path, stack=[], has_next=false, &block )
  puts stack.join << (has_next ? "" : "" ) << File.basename( path )
  if File.directory? path
    list = []
    Dir.foreach( path ) {|d|
      dir = path + "/" + d
      next if d == "." || d == ".." || ( block_given? && !block.call(dir) )
      list << dir
    }
    stack << (has_next ? "│ " : "  ")
    list.each_index {|i|
      tree( list[i], stack, i < list.size-1, &block )
    }
    stack.pop
  end
end

使い方。

# 指定ディレクトリ配下をツリー表示する
tree( "./test" )

puts "---"

# ブロックで除外する要素を指定できる。
tree( "./test" ) { |d|
  !( d =~ /\/bbbbb$/ ) # "bbbbb"はツリーに含めない。
}

実行結果です。

└test
  ├aaaaa
  │ ├x.txt
  │ └y.txt
  ├bbbbb
  │ ├x.txt
  │ └y.txt
  ├x.txt
  └y.txt
---
└test
  ├aaaaa
  │ ├x.txt
  │ └y.txt
  ├x.txt
  └y.txt