Top > Rubyあれこれ > 階層のあるディレクトリを走査

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
# dir : サーチするディレクトリ
# depth : 階層の深さ(tabインテンドの表示数)
def my_walk(dir, depth)
  Dir.foreach(dir){|name|
    if name != '.' and name != '..' then
      
      path = File.join(dir,name)
      
      case File.ftype(path)
      when "file"
        puts "\t" * depth + path
      when "directory"
        puts "\t" * depth + path + "/"
        my_walk(path, depth+1)
      end
    end
  }
end
 
my_walk("C:\\usr\\local\\share", 0)
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
def my_walk(dir, depth)
        puts "|\t" * depth + "+---->" + File.basename(dir)
 
        return if File.ftype(dir) != "directory"
 
    Dir.foreach(dir){|name|
        next if name == '.' or name == '..' 
 
        my_walk(File.join(dir,name), depth+1)
 
    }
end
 
my_walk("/Users/mikeda",0)
  0
  1
  2
  3
require 'find'
Find.find(".") do |f|
    puts "#{f}"
end
  0
  1
  2
Dir.glob("C:/usr/local/share/**/") { |name|
    puts name
}

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:25:49 (2925d)