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]
(ブロック単位でなく、バイトで計算)
再帰のメソッドって慣れないので時間が掛かった。