如何从open命令中查找文件路径

时间:2011-09-13 20:52:28

标签: ruby open-uri

我需要在fo变量中获取文件的路径,以便我可以将路径传递给unzip_file函数。我如何在这里获得这条路?

url = 'http://www.dtniq.com/product/mktsymbols_v2.zip'
open(url, 'r') do |fo|
  puts "unzipfile "
  unzip_file(fo, "c:\\temp11\\")
end

2 个答案:

答案 0 :(得分:3)

就如何做而言,我会这样做:

  1. 找出我正在处理的对象的类

    ruby-1.9.2-p290 :001 > tmp_file = open('tmp.txt', 'r')
      => #<File:tmp.txt> 
    ruby-1.9.2-p290 :001 > tmp_file.class
      => File
    
  2. 查看该课程的文档

    Google搜索:ruby文件

    返回Class: File ruby-doc.org =&gt; www.ruby-doc.org/core/classes/File.html

  3. 看看这些方法。有一个名为path - &gt;看起来很有趣

  4. 如果我现在还没有找到答案,那么

    1. 继续浏览谷歌/堆栈溢出一点
    2. 我真的找不到符合我问题的解决方案。是时候在这里问一个问题了
    3. 大部分时间1..3都可以满足您的需求。一旦学会阅读文档,就可以更快地完成任务。它只是试图克服你刚开始时进入文档的难度。

答案 1 :(得分:0)

您的区块中的fo应该是Tempfile,因此您可以使用path方法:

url = 'http://www.dtniq.com/product/mktsymbols_v2.zip'
open(url, 'r') do |fo|
    puts "unzipfile "
    unzip_file(fo.path, "c:\\temp11\\")
end