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


88

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

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

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

Ответы:


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.