2010-08-27 8 views

Antwort

26
dirname = File.basename(Dir.getwd) 

File.basename() gibt den Basisnamen, selbst wenn ihr Argument der Pfad eines Verzeichnisses ist.

Der folgende Code druckt kiamlaluno für mich, wo /home/kiamlaluno das Home-Verzeichnis in meinem Ubuntu-Installation ist.

puts File.basename('/home/kiamlaluno') 

Das gleiche tut puts File.basename(Dir.getwd), wenn das aktuelle Verzeichnis/home/kiamlaluno.

+0

+1 Es ist ein bisschen irreführend obwohl w.r.t. Lesbarkeit – Gishu

7
irb(main):001:0> Dir.getwd 
=> "C:/Documents and Settings/UserName" 

oder habe ich falsch verstehen Ihre Frage?

Update: eines der Try unter

File.split(Dir.getwd)[-1] 
Pathname.new(Dir.getwd).basename.to_s 
+0

Ja, ich möchte nur den aktuellen Ordnernamen haben, nicht Ordnerpfad. In diesem Fall: Benutzername. Gibt es eine Möglichkeit, dies in Ruby zu tun oder müssen Sie regexp verwenden? –

+2

File.Basename (Dir.getwd) gibt nur den letzten Ordnernamen zurück. – Teoulas

+1

@ajsie - siehe Update. – Gishu