Tôi hiểu rằng tôi có thể nhận được thư mục hiện bởiNhận thư mục cha của thư mục hiện tại trong Ruby
$CurrentDir = Dir.pwd
Làm thế nào về thư mục cha của thư mục hiện hành?
Tôi hiểu rằng tôi có thể nhận được thư mục hiện bởiNhận thư mục cha của thư mục hiện tại trong Ruby
$CurrentDir = Dir.pwd
Làm thế nào về thư mục cha của thư mục hiện hành?
File.expand_path("..", Dir.pwd)
lẽ là giải pháp đơn giản nhất:
puts File.expand_path('../.')
Tại sao không chỉ 'File.expand_path ('..')'? –
@muistooshort thực sự thú vị, và chắc chắn hữu ích để biết, cảm ơn;) – maprihoda
Câu trả lời của bạn piqued sự tò mò của tôi để kiểm tra spec cho 'File.expand_path' vì vậy cảm ơn cho điều đó. –
Tôi nghĩ rằng một giải pháp đơn giản hơn thậm chí là sử dụng 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
trả về thành phần của con đường mà File.dirname
không.
Điều này, tất nhiên, chỉ hoạt động nếu tệp filespec tuyệt đối và không tương đối. Để chắc chắn làm cho nó tuyệt đối, người ta có thể làm điều này:
2.3.0 :008 > File.expand_path('.')
=> "/Users/kbennett/temp"
2.3.0 :009 > File.dirname(File.expand_path('.'))
=> "/Users/kbennett"
@Niklas: Hoặc 'File.expand_path ('..')', [default 'dir_string'] (http: // ruby-doc. org/core-1.9.3/File.html # method-c-expand_path) là ''.''. –
@muistooshort: rất hay biết :) –
@Niklas: Tôi vừa học được nó quá, vì vậy chúng tôi thậm chí còn :) –