Попробуйте
Dir.chdir dir.strip
или
Dir.chdir dir.chomp
Причина: С File.foreach
вы получаете строки, включая переводы строк (\n
).
strip
удалит начальные и конечные пробелы, chomp
удалит завершающие новые строки.
Другая возможность: в вашем примере вы используете абсолютные пути.Это должно работать.
Если вы используете относительные пути, то проверьте, в каком каталоге вы находитесь (вы меняете его!).Для хранения каталога вы можете использовать блочную версию Dir.chdir
.