練習問題の続き

2つ目。

# (2) Unixコマンドのduコマンドのように、ファイルとディレクトリに保存
# されているデータの大きさを再帰的に掘り下げて表示するメソッドduを定義
# してください。
# このメソッドは引数を1つだけ取ります。
# du(調べるディレクトリ名)

#! /usr/bin/ruby -w
def du(dir)
  sum = 0 
  Dir.glob(dir + "**/*").each do |e|
  #Dir.entries(dir).each do |e|
    case File.ftype(e) 
      when "directory"
        sum += du(e)
      when "file"
        sum += File.size(e)
      else    
        #       
    end
  end
  $stdout.printf("%-8s%s\n", sum, dir)
  return sum
end

du ARGV[0] 

(ブロック単位でなく、バイトで計算)
再帰のメソッドって慣れないので時間が掛かった。