Ruby, obtenant le chemin du chemin + le nom du fichier

88

Langage de programmation: Ruby 1.9

Chaîne de problème: C:/Test/blah.txt
àC:/Test/

Je sais que c'est une question facile, mais Google et la référence rapide Ruby Filen'ont pas de solution pour moi.
Et je n'ai aucune expérience avec Regex.

Onetimeposter123
la source

Réponses:

171

Utilisez la File.dirnameméthode Ruby .

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 
Simone Carletti
la source
4
Pour moi, File.dirname("/a/b/c/d")renvoie correctement /a/b/cmais File.dirname("/a/b/c/d/")(barre oblique finale) renvoie également/a/b/c .
Jason
3
Il y a tout simplement trop d'informations sans contexte dans la documentation ruby ​​pour trouver ~ exactement ~ ce que vous cherchez en ce moment. Idéal pour rafraîchir si vous le saviez déjà ou étudier si vous essayez de tout savoir, horrible si vous êtes sur un projet et avez juste besoin de savoir cette seule chose. Merci beaucoup pour cette réponse, cela m'a rendu la vie beaucoup plus facile.
JackChance
0

Plus polyvalente serait la classe Ruby Pathname:

require 'pathname'

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

ce qui donne C:/Test/.

Twonky
la source