2011-08-24 107 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

这也是该目录的一部分。向上移动文件夹。 因此需要在目录的每个文件中删除这两个文件。