Ruby奇怪场景打开存储在变量中的目录

时间:2012-06-27 14:00:20

标签: ruby file directory

我有一个Ruby脚本,它打开一个目录并将内容打印到屏幕上:

rootDir = '/Users'
puts rootDir

Dir.foreach(rootDir) do |folder|
  next if folder == '.' or folder == '..'

  puts folder if(File.directory? rootDir+'/'+folder)

end

当我在终端中运行它时,我收到以下错误:

/Users
imager.rb:77:in `open': No such file or directory - /Users (Errno::ENOENT)
from imager.rb:77:in `foreach'
from imager.rb:77

第77行是Dir.foreach行。但是当我运行以下代码时,它完美地运行:

rootDir = '/Users'
puts rootDir

Dir.foreach('/Users') do |folder|
  next if folder == '.' or folder == '..'

  puts folder if(File.directory? '/Users'+'/'+folder)

end

当文件夹路径存储在rootDir中时,它似乎无法找到该文件夹​​。有任何想法吗? / Users与脚本不在同一目录中。

1 个答案:

答案 0 :(得分:0)

刚刚想出解决方案。从终端读入文件夹/ Users,并将其存储在文件中。当我从终端读取它时,我做了一个.chomp,但是当我将它存储在一个文件中时,我将\ n保留在最后。从文件中读取它将它放回到最后。糟糕。