Пути к файлам в Ruby - PullRequest
       0

Пути к файлам в Ruby

3 голосов
/ 17 февраля 2010

Итак, я хочу указать путь к файлу относительно каталога, в котором он находится, в Ruby.

У меня есть проект, и я хочу, чтобы он мог найти файл независимо от того, в какой каталог распакован проект. (Скажем, код запускается на разных машинах, например) Я не могу понять это на всю жизнь.

Кажется, требует, чтобы я мог сделать это:

require File.dirname(__FILE__) + '/comparison'

Что я могу сделать для файла, который находится в другом каталоге, чем моя папка src?

Вместо листинга,

file = 'C:/whole path/long/very_long/file.txt'

Я бы хотел сказать:

file = 'file.txt'

или

file = File.helpful_method + 'file.txt'

Ответы [ 2 ]

5 голосов
/ 17 февраля 2010
file = File.join(File.dirname(__FILE__), '..', 'another_dir', 'file.txt')

Заменить '..', 'another_dir' относительными сегментами пути, которые достигают 'file.txt'.

0 голосов
/ 27 января 2013

Если вы используете Ruby 1.9.2 или новее, вы можете использовать require_relative вместо:

require_relative '../somewhere/file.rb'

Это не решает общую проблему обращения к файлам по их относительному пути, но если все, что вы делаете, требует файл, он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...