我有一个项目结构如下:
- info.config(只是一个带有 prefs+creds 的 JSON 文件)
- main.rb
- 任务/
- 测试.rb
在 main.rb(在项目的根目录)和 test.rb(在 tasks 文件夹下)中,我希望能够读取和解析 info.config 文件。我已经想出如何在 main.rb 中执行以下操作:
JSON.parse(File.read('info.config'))
当然,这在 test.rb 中不起作用。
问题:如何从 test.rb 中读取文件,即使它在层次结构中更深一层?
感谢我能得到的任何指导!谢谢!
最佳答案
使用相对路径:
path = File.join(
File.dirname(File.dirname(File.absolute_path(__FILE__))),
'info.config'
)
JSON.parse(File.read(path))
File.dirname(File.absolute_path(__FILE__))
将为您提供test.rb
所在的目录。 -> (1)File.dirname(File.dirname(File.absolute_path(__FILE__)))
将为您提供 (1) 的父目录。
引用:File::absolute_path
, File::dirname
更新
使用 File::expand_path
更具可读性。
path = File.expand_path('../../info.config', __FILE__)
JSON.parse(File.read(path))
关于ruby - 使用 Ruby 读取目录中其他地方的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21902526/