2011-06-29 39 views
5

Dưới đây là mã của tôi trong một nhiệm vụ cào để mở một tập tin:Rails.root filepath kí tự đại diện

File.open(Rails.root.join("public/system/xmls/**/original/*.csv"),"r") do |file| 
    #etc 

nhưng nó không phù hợp với bất kỳ tập tin (có ba trận đấu có thể). ** Đầu tiên là một thư mục có tên gồm 2 chữ số. Tôi làm sai ở đâu?

Trả lời

4

Phương thức join không thường mở rộng *** nhưng đặt chúng dưới dạng chữ. Có lẽ đây là vấn đề. Những gì bạn muốn có thể giống như thế này:

Dir.glob(Rails.root.join("public/system/xmls/**/original/*.csv")).each do |path| 
    File.open(path) do |file| 
    # ... 
    end 
end 

Mở từng tệp riêng lẻ và bạn sẽ ổn.

+0

Thiên tài. Nó hoạt động hoàn hảo. Cảm ơn! – snowangel

+0

Nhận xét của người dùng ẩn danh (bị từ chối chỉnh sửa): Để lặp qua từng dòng, thay thế 'File.open (path)' bằng 'File.open (path) .each'. – Anne

Các vấn đề liên quan