2011-12-28 5 views
49

にカレントディレクトリの親ディレクトリを取得しますか?

答えて

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

@Niklas::または 'File.expand_path( '..')'、[デフォルトの 'dir_string'](のhttp://ルビー-docのそれこれを行うことが絶対的にするようにしてくださいするには。 org/core-1.9.3/File.html#method-c-expand_path)は ''。 ''です。 –

+0

@muistooshort:nice to know :) –

+0

@Niklas:私もそれを学びました。 –

11

おそらく最も簡単な解決策:

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

'File.expand_path( '..')'だけではないのはなぜですか? –

+0

@muistooshort確かに興味深い、そして分かりやすく知っておかなければならない、ありがとう;) – maprihoda

+0

あなたの答えは 'File.expand_path'の仕様をチェックするために私の好奇心を刺激しました。 –

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.dirnameがないこと、パスのコンポーネントを返しますFile.basename

これはfilespecが絶対的で相対的でない場合にのみ有効です。

2.3.0 :008 > File.expand_path('.') 
=> "/Users/kbennett/temp" 
2.3.0 :009 > File.dirname(File.expand_path('.')) 
=> "/Users/kbennett" 
関連する問題

 関連する問題