Ruby, obteniendo la ruta de la ruta + nombre de archivo

88

Lenguaje de programación: Ruby 1.9

Cadena de problemas: C:/Test/blah.txt
aC:/Test/

Sé que es una pregunta fácil, pero Google y la referencia rápida de Ruby Fileno tienen una solución para mí.
Y no tengo experiencia con Regex.

Onetimeposter123
fuente

Respuestas:

171

Usa el File.dirnamemétodo Ruby .

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 
Simone Carletti
fuente
4
Para mí, File.dirname("/a/b/c/d")devuelve correctamente /a/b/cpero File.dirname("/a/b/c/d/")(barra diagonal) también devuelve /a/b/c.
Jason
3
Hay demasiada información sin contexto en los documentos de Ruby para encontrar ~ exactamente ~ lo que está buscando en este momento. Genial para repasar si ya lo sabía o estudiar si está tratando de saberlo todo, horrible si está en un proyecto y solo necesita saber esto. Muchas gracias por esta respuesta, me hizo la vida mucho más fácil.
JackChance
0

Más versátil sería la clase Ruby Pathname:

require 'pathname'

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

que da C:/Test/.

Twonky
fuente