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.

Respostas:


171

Use o File.dirnamemétodo Ruby .

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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.