我有一个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与脚本不在同一目录中。
答案 0 :(得分:0)
刚刚想出解决方案。从终端读入文件夹/ Users,并将其存储在文件中。当我从终端读取它时,我做了一个.chomp,但是当我将它存储在一个文件中时,我将\ n保留在最后。从文件中读取它将它放回到最后。糟糕。