Ruby, pobieram ścieżkę ze ścieżki + nazwa pliku

88

Język programowania: Ruby 1.9

Ciąg problemu: C:/Test/blah.txt
doC:/Test/

Wiem, że to łatwe pytanie, ale Google i szybki odnośnik do Rubiego Filenie mają dla mnie rozwiązania.
I nie mam doświadczenia z Regex.

Onetimeposter123
źródło

Odpowiedzi:

171

Użyj File.dirnamemetody Ruby .

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 
Simone Carletti
źródło
4
Dla mnie File.dirname("/a/b/c/d")poprawnie zwraca, /a/b/cale File.dirname("/a/b/c/d/")(końcowy ukośnik) również zwraca /a/b/c.
Jason
3
W dokumentach Ruby jest po prostu zbyt wiele informacji bez kontekstu, aby znaleźć ~ dokładnie ~ to, czego w danej chwili szukasz. Świetnie się odświeża, jeśli już to wiesz lub studiujesz, jeśli próbujesz wiedzieć wszystko, okropne, jeśli jesteś w projekcie i po prostu musisz wiedzieć jedną rzecz. Dziękuję bardzo za tę odpowiedź, znacznie ułatwiła mi życie.
JackChance,
0

Bardziej wszechstronna byłaby klasa Ruby Pathname:

require 'pathname'

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

co daje C:/Test/.

Twonky
źródło