我在Ruby目录搜索时遇到了问题。我想像gitignore文件那样实施。 当某个文件列在忽略文件中时,将不会搜索它。
例如 这是一个目录列表,如果我想忽略/ bar(及其所有子文件)
/bar (directory)
/bar/a.txt
/bar/b.txt
/foo
/foo/c.txt
/foo/d.txt
如果我使用
Dir["/**/*"]
将搜索每个文件。
我怎么才能只搜索foo目录?
答案 0 :(得分:2)
Dir["/**/*"].reject{|f|f["/bar/"]}.each do |file|
puts file
end
=>
/foo
/foo/c.txt
/foo/d.txt
如果您有多个子滤镜用于过滤使用Regexp.union,例如我的所有google驱动器文件没有subs \ docs和\ ruby
pattern = Regexp.union("C:/Users/peter/Google Drive/ruby", "C:/Users/peter/Google Drive/docs")
Dir["C:/Users/peter/Google Drive/**/**"].reject{|f|f[pattern]}.each do |file|
p file
end