Ruby, получение пути из пути + имя файла

88

Язык программирования: Ruby 1.9

Строка проблемы: C:/Test/blah.txt
доC:/Test/

Я знаю, что это простой вопрос, но Google и Ruby quickref for не Fileимеют для меня решения.
И у меня нет опыта работы с Regex.

Onetimeposter123
источник

Ответы:

171

Используйте File.dirnameметод Ruby .

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 
Симоне Карлетти
источник
4
Для меня File.dirname("/a/b/c/d")правильно возвращается, /a/b/cно File.dirname("/a/b/c/d/")(завершающая косая черта) также возвращается /a/b/c.
Джейсон
3
В документации по ruby ​​слишком много информации без контекста, чтобы найти ~ именно ~ то, что вы ищете в данный момент. Замечательно освежить в памяти, если вы это уже знали, или учиться, если вы пытаетесь знать все, ужасно, если вы работаете над проектом и вам просто нужно знать одну вещь. Большое спасибо за этот ответ, который сделал мне жизнь намного проще.
JackChance
0

Более универсальным был бы класс Ruby Pathname:

require 'pathname'

pn = Pathname.new("C:/Test/blah.txt")
p pn.dirname.to_s + Pathname::SEPARATOR_LIST

что дает C:/Test/.

Twonky
источник