как найти путь к файлу из команды open - PullRequest
0 голосов
/ 14 сентября 2011

Мне нужно получить путь к файлу в переменной 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 ]

3 голосов
/ 14 сентября 2011

С точки зрения того, как это сделать, я бы сделал это:

  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 => www.ruby-doc.org/core/classes/File.html

  3. Посмотрите на методы. Один называется path -> выглядит интересно

Если я не нашел ответа, тогда

  1. Продолжайте немного глядеть вокруг переполнения Google / стека
  2. Я действительно не могу найти решение, которое соответствует моей проблеме. Время задать вопрос здесь

Большую часть времени 1..3 должно дать вам то, что вам нужно. Как только вы научитесь читать документацию, вы сможете делать вещи намного быстрее. Это просто попытка преодолеть, как трудно попасть в документы при первом запуске.

0 голосов
/ 14 сентября 2011

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
...