查看完整版本: 获得目录结构的小程序

kh9n 2007-9-21 16:28

获得目录结构的小程序

自己写的一个简单的递归获得目录结构的小程序
目录保存在一个hash中,hash只有一对key-value,key的值是目录名,value是一个数组,数组中包含此目录的子目录(子目录也是一个hash,作为一个数组元素存在,普通文件作为数组的一个元素
没有仔细检查过,欢迎大家提出批评[code]class File_helper
  def File_helper.get_folder_list(path,dirfilter,filefilter)
    tree = {:start=>[]}
    walktree(path,tree[:start],dirfilter,filefilter)
    return tree
  end

  def File_helper.walktree(path,tree,dirfilter=nil,filefilter=nil)
    i=0
    tmppath = path+"/*"
    Dir[tmppath].each do |f|
      if File.file? f
        if(!filefilter or f=~ /#{filefilter}/)
          tree << f
          i = i+1
        end
      end
      if File.directory?(f ) and File.readable?(f) and (f  =~ /.?/)==0 and (!dirfilter or f =~ /#{dirfilter}/)
        tree << {f => []}
        walktree(f,tree[i][f],dirfilter,filefilter)
        i = i+1
      end
    end
  end[/code]

blackanger 2007-9-23 12:04

欢迎大家展开讨论啊

xnine 2007-9-24 14:18

需要注释 不能理解

cclong 2007-12-17 15:20

[code]Dir["**/*"].each {|file| puts file }[/code]
凑合~

antares_sco 2008-2-18 14:58

少了个end

antares_sco 2008-2-18 15:02

谁能告诉我怎么看结果吗?

antares_sco 2008-2-18 15:04

噢。。。看到了。。。。没注意4楼的代码。。呵呵

antares_sco 2008-2-18 15:34

还是看不懂。。。。。有请注释,谢谢

wscc111 2008-3-5 12:04

需要注释!!!

~~~~~~~~
页: [1]
查看完整版本: 获得目录结构的小程序