Ruby, obtendo caminho de caminho + nome do arquivo

88

Linguagem de programação: Ruby 1.9

String do problema: C:/Test/blah.txt
paraC:/Test/

Eu sei que é uma pergunta fácil, mas o Google e o quickref do Ruby Filenão têm solução para mim.
E não tenho experiência com Regex.

Onetimeposter123
fonte

Respostas:

171

Use o File.dirnamemétodo Ruby .

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 
Simone Carletti
fonte
4
Para mim, File.dirname("/a/b/c/d")retorna corretamente , /a/b/cmas File.dirname("/a/b/c/d/")(barra final) também retorna /a/b/c.
Jason
3
Há muita informação sem contexto nos documentos do ruby ​​para encontrar ~ exatamente ~ o que você está procurando no momento. Ótimo para se atualizar se você já sabia ou estudar se estiver tentando saber tudo, horrível se você estiver em um projeto e só precisar saber uma coisa. Muito obrigado por esta resposta, tornou a vida muito mais fácil para mim.
JackChance de
0

Mais versátil seria a classe Ruby Pathname:

require 'pathname'

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

que dá C:/Test/.

Twonky
fonte