2011-12-28 11 views

Respuesta

92
File.expand_path("..", Dir.pwd) 
+12

@Niklas: o 'File.expand_path ('..') ', el [por defecto' dir_string'] (http: // rubí-doc. org/core-1.9.3/File.html # method-c-expand_path) es ''.''. –

+0

@muistooshort: es bueno saber :) –

+0

@Niklas: Acabo de aprender también, así que estamos incluso :) –

11

Tal vez la solución más simple:

puts File.expand_path('../.') 
+10

¿Por qué no simplemente 'File.expand_path ('..')'? –

+0

@muistooshort de hecho interesante, y definitivamente útil saber, gracias;) – maprihoda

+0

Su respuesta despertó mi curiosidad por comprobar las especificaciones para 'File.expand_path' así que gracias por eso. –

4

Creo que una solución aún más simple es utilizar File.dirname:

2.3.0 :005 > Dir.pwd 
=> "/Users/kbennett/temp" 
2.3.0 :006 > File.dirname(Dir.pwd) 
=> "/Users/kbennett" 
2.3.0 :007 > File.basename(Dir.pwd) 
=> "temp" 

File.basename devuelve el componente de la ruta que File.dirname no.

Esto, por supuesto, funciona solo si la especificación de archivos es absoluta y no relativa. Para estar seguro de que sea una absoluta podría hacer esto:

2.3.0 :008 > File.expand_path('.') 
=> "/Users/kbennett/temp" 
2.3.0 :009 > File.dirname(File.expand_path('.')) 
=> "/Users/kbennett" 
Cuestiones relacionadas