2015-06-23 83 views
0

鑑於我有一個指向一個目錄的相對路徑,我如何將它與Ruby的路徑名或文件庫一起用來獲取目錄本身?使用Ruby路徑名訪問相對目錄

p = Pathname.new('dir/')

p.dirname => .

p.directory? => false

我已經試過 './dir/', 'DIR /', '目錄'。

我想要的是p.dirname返回'dir'。我不想指向'dir'中的另一個文件或目錄。

+0

'p.to_s'; 'p.basename.to_s' – PSkocik

+0

顯然,我正在研究一個通用的解決方案,它也需要處理基本級別的目錄。在正常情況下,dirname工作正常(/ etc/dir/file =>/etc/dir),這就是我爲什麼要使用它的原因。 to_s和basename在這種情況下是沒有意義的。這個問題清楚地說明了我的目的,請不要低估並給出無關的答案。 – thisismydesign

+0

你想用'dirname'來返回一些不是目錄名稱的東西嗎?你需要添加另一個層次,比如'p = Pathname.new('dir /。')'現在目錄名是「dir」 –

回答

2

您需要添加另一個級別像

p = Pathname.new('dir/.') 

現在的目錄名稱是 「目錄」

+0

請注意,我的初衷是即不添加另一個級別而不使用路徑名。 – thisismydesign

1

File.expand_path(FILE) => 「/ tmp目錄/ somefile」

文件。 dirname(File.expand_path(FILE)) =>「/ tmp」