Dir.entries(目录).reject {| F | [“。”,“..”,“images”,“。zip”]。include? F}

时间:2012-09-09 19:40:23

标签: ruby dir

  dirs=Dir.entries(directory).reject{|f| [".", "..", "images", ".zip"].include? f}

我需要避免在“目录”中的“dirs”中包含一个zip文件,上面的内容不对, 如果我不知道zip文件的名称,那么正确的语法是什么?

3 个答案:

答案 0 :(得分:1)

Dir.entries(directory).reject { |f| f =~ /\.$|images|\.zip/ }怎么样?

答案 1 :(得分:0)

Dir.entries(directory).reject{|f| [".", "..", "images"].include? f}.reject{|f|f=~%r(\.(?i:)(?:zip)$)}

可以做得更好吗?

答案 2 :(得分:0)

您可以在拒绝来电中使用正则表达式:

Dir.entries(directory).reject {|f| /\A(\.\.?|images|.*\.zip)\Z =~ f}

这有点丑陋,但它允许你使用通配符匹配。希望有所帮助!