Jak uzyskać nazwę bieżącego katalogu w Ruby? Wszystko, co znalazłem, to File.dirname(__FILE__)
, ale to tylko zwraca .
i chcę rzeczywistą nazwę. Jak mam to zrobic?Jak uzyskać nazwę bieżącego katalogu w Ruby?
15
A
Odpowiedz
31
dirname = File.basename(Dir.getwd)
File.basename()
zwraca nazwę bazy, nawet jeśli jego argumentem jest ścieżka katalogu.
Aby uzyskać bezwzględną ścieżkę, Dir.pwd wydaje rade.
8
File.expand_path(File.dirname(File.dirname(__FILE__)))
20
W Ruby 2.0 lub wyższa, można użyć Kernel#__dir__
:
__dir__
Od docs:
Zwraca też w postaci bezwzględną ścieżkę do katalogu z plikiem z którego ta metoda jest wywoływana .
+0
Jak wspomniano w pytaniu - "to tylko zwraca. I chcę rzeczywistą nazwę" (dotyczy to również ruby> = 2.0.0, na przykład Ruby 2.3.3). –
Dlaczego dwa 'dirnames'? –