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.

Odpowiedzi:


171

Użyj File.dirnamemetody Ruby .

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.