1

我有一个 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 与脚本不在同一目录中。

4

1 回答 1

0

刚刚想出了解决办法。文件夹 /Users 是从终端读取的,并存储在一个文件中。当我从终端读取它时,我做了一个 .chomp,但是当我将它存储在一个文件中时,我将 \n 保留在最后。从文件中读取它把它放回最后。哎呀。

于 2012-06-27T14:03:09.503 回答