Ruby:在搜索所有目录中的文件时忽略目录中的句点?

时间:2015-04-01 19:10:57

标签: ruby file-io

我创建了一个find脚本来搜索运行脚本的所有目录中的文件中的文本。

print "Enter text to search: "
input = gets.chomp

search = Regexp.escape(input)

Dir.glob("**/*.*").each do |file|
        data = File.read(file)
        if data.match(search)
        puts "Text Found: " + __dir__ + "/" + file
 end
 end

它有效,但是我收到此错误,因为我搜索的目录包含带句点的目录名。

find.rb:7:in `read': Is a directory @ rb_sysopen - cramws/cram_ws.egg-info (Errno::EISDIR)
    from find.rb:7:in `block in <main>'
    from find.rb:6:in `each'
    from find.rb:6:in `<main>'

我怎样才能进入这些?

1 个答案:

答案 0 :(得分:2)

要快速修复,您可以添加:

next if File.directory?(file)

在你的街区的开头。