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 に答える