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

Ruby: Ignore periods in directories when searching all directories for files?

我创建了一个查找脚本,用于在脚本所在的所有目录中的文件中搜索文本 运行。

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>'

我怎样才能忽略这些?

为了快速修复,您可以添加:

next if File.directory?(file)

在你的块的开头。