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.

Respuestas:


171

Usa el File.dirnamemétodo Ruby .

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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.