Рубі, отримує шлях із шляху + ім'я файлу


88

Мова програмування: Ruby 1.9

Рядок проблеми: C:/Test/blah.txt
доC:/Test/

Я знаю, що це просте запитання, але Google і Ruby quickref для Fileмене не знайшли рішення.
І я не маю досвіду роботи з Regex.

Відповіді:


171

Використовуйте File.dirnameметод Рубі .

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
У рубінових документах просто забагато інформації без контексту, щоб знайти ~ саме ~ те, що ви шукаєте на даний момент. Чудово роздумувати, якщо ти це вже знав, або вчитися, якщо намагаєшся все знати, жахливо, якщо ти працюєш над проектом і просто потрібно знати це одне. Щиро дякую за цю відповідь, значно полегшила мені життя.
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.