如何使用ruby将文件保存到目录

时间:2013-03-09 17:20:25

标签: ruby-on-rails ruby ruby-on-rails-3

我有这个ruby代码,它从Internet获取xml文件并保存。它将它保存到当前目录,但是想将它保存到specfik目录。我该怎么做?

require 'rubygems'
require 'nokogiri'
require 'open-uri'

base_url = 'SOME-URL'
extension = '.xml'
# the specfik dir
xml_dir = '/Users/admin/Documents/Projects/files/xmlfolder'

Nokogiri::HTML(open(base_url)).xpath("//a/@href").each do |src|  
  File.open(File.basename(src.value, File.extname(src.value)) + extension,'wb'){ |f| 
    f.write(open(src.value).read)
  }
  puts "Done with: #{base_url}"
end

1 个答案:

答案 0 :(得分:0)

确定xml_dir后,将您的写入包装在Dir :: chdir块中,如下所示:

 Dir.chdir(xml_dir) do
   f.write # ...
 end

或者在File.open调用中构建绝对路径而不是部分路径。