这是我在rake任务中打开文件的代码:
File.open(Rails.root.join("public/system/xmls/**/original/*.csv"),"r") do |file|
#etc
但它不匹配任何文件(有三种可能的匹配)。第一个**是一个名为2位的文件夹。我哪里错了?
答案 0 :(得分:4)
join
方法通常不会展开*
和**
,而是将它们作为文字放入。也许这就是问题所在。你想要的可能更像是这样:
Dir.glob(Rails.root.join("public/system/xmls/**/original/*.csv")).each do |path|
File.open(path) do |file|
# ...
end
end
单独打开每个文件,你应该没事。