2015-06-23 1 views
0

Учитывая, что у меня есть относительный путь, указывающий на каталог, как я могу использовать его с пустым или файловой библиотекой Ruby для получения самой директории?Использование Ruby Pathname для доступа к относительному каталогу

p = Pathname.new('dir/')

p.dirname => .

p.directory? => false

Я попытался './dir/', 'реж /', 'реж.

Я хочу, чтобы p.dirname возвращал 'dir'. Я не хочу указывать на другой файл или каталог в «dir».

+0

'p.to_s'; 'p.basename.to_s' – PSkocik

+0

Очевидно, что я работаю над общим решением, которое также должно обрабатывать каталоги на базовом уровне. В нормальном случае dirname отлично работает (/ etc/dir/file =>/etc/dir), поэтому я хочу использовать это. to_s и basename не имеют смысла в этом случае. В этом вопросе четко указывается моя цель, пожалуйста, не делайте ни слова и не давайте несвязанные ответы. – thisismydesign

+0

Вы хотите использовать 'dirname' для возврата того, что не является именем каталога? Вам нужно добавить еще один уровень, например 'p = Pathname.new ('dir /.')' Теперь имя каталога «dir» –

ответ

2

Вам нужно добавить еще один уровень, как

p = Pathname.new('dir/.') 

теперь имя каталога "реж"

+0

Обратите внимание, что мое первоначальное намерение, то есть сделать это без добавления другого уровня, не связано с Pathname. – thisismydesign

1

File.expand_path (FILE) => "/ TMP/некий-файл"

файла. dirname (File.expand_path (FILE)) => "/ tmp"

Смежные вопросы