2011-08-24 31 views
1

我想檢測目錄我的電腦。但是當我寫下面的代碼,Ruby只是給我「。」和「..」。用「目錄?」檢測目錄方法

Dir.foreach("c:/windows") do |i| 
    puts i if File.directory(i) 
end 

請幫幫我。 謝謝

+0

它列出當前目錄'.'和以前的目錄快捷鍵'..',但沒有別的。你確定你正在使用的系統能夠正確讀取C:/分區嗎? –

回答

3

Dir.foreach只返回文件名(相對),所以它不會工作。構建絕對路徑或更好的嘗試簡單:

Dir['c:/windows/*/'] 
0

你的代碼似乎做工精細,除了File.directory(i)File.directory?(i)

Dir.foreach("/mnt/tmp") do |i| 
    puts i if File.directory?(i) 
end 
=> 
. 
.. 
majic 
Dropbox 
+1

你確定嗎? '如果-d我'甚至不是有效的Ruby。 – Serabe

+0

現在還不確定,因爲我試過了。嗯,我幾乎可以肯定,我已經使用-f -e -d等文件,但也許我已經在編碼perl –

+0

(以前的評論指的是早期版本的答案) –

0

這也是該目錄的一部分。向上移動文件夾。 因此需要在目錄的每個文件中刪除這兩個文件。