2011-12-28 123 views

回答

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

@Niklas:或'File.expand_path( '..')',[默認'dir_string'(HTTP://紅寶石文檔。 org/core-1.9.3/File.html#method-c-expand_path)是''。''。 – 2011-12-28 22:07:24

+0

@ muistooshort:很高興知道:) – 2011-12-28 22:21:03

+0

@Niklas:我剛剛也學到了,所以我們甚至:) – 2011-12-28 22:37:02

11

也許最簡單的解決方案:

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

爲什麼不只是'File.expand_path('..')'? – 2011-12-28 22:07:36

+0

@ muistooshort的確很有意思,並且明確地知道,謝謝;) – maprihoda 2011-12-29 08:43:17

+0

您的回答引起了我的好奇心,以檢查File.expand_path的規範,所以非常感謝。 – 2011-12-29 09:29:51

4

我認爲,一個更簡單的解決方案是使用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返回的路徑是File.dirname不組件。

這當然只在filespec是絕對的而不是相對的時候才起作用。可以肯定,使其絕對的可以這樣做:

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