2010-08-27 38 views

Trả lời

26
dirname = File.basename(Dir.getwd) 

File.basename() trả về tên cơ sở ngay cả khi đối số của nó là con đường của một thư mục.

Các bản in mã sau kiamlaluno đối với tôi, nơi /home/kiamlaluno là thư mục chính trong cài đặt Ubuntu của tôi.

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

Tương tự như vậy puts File.basename(Dir.getwd), khi thư mục hiện tại là/home/kiamlaluno.

+0

+1 Đó là một chút sai lầm mặc dù w.r.t. khả năng đọc – Gishu

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

hoặc tôi hiểu nhầm câu hỏi của bạn?

Cập nhật: Hãy thử một trong những dưới đây

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

Vâng tôi muốn chỉ có tên thư mục hiện tại, không phải đường dẫn thư mục. Trong trường hợp này: UserName. Có cách nào để làm điều này trong Ruby hoặc bạn phải sử dụng regexp? –

+2

File.basename (Dir.getwd) sẽ chỉ trả về tên thư mục cuối cùng. – Teoulas

+1

@ajsie - xem cập nhật. – Gishu

Các vấn đề liên quan