好的,所以使用 siriproxy 它是我的 lib 文件夹以及插件的 rb 文件,我创建了一个 myconfig.yml 文件,因此我可以通过写入该文件来更改某些设置。
我已经能够写入文件,但前提是我包含从主目录一直向下的完整路径。
但是有没有办法从我所在的同一目录打开文件?我已经尝试了所有我能想到的路径组合。
一定有一个我想念的
如果您在 ruby 文件中使用以下内容,您应该得到它所在的绝对路径
File.expand_path(__FILE__)
来自文档 __FILE__
当前正在执行的文件的名称,包括相对于启动应用程序的目录(或当前目录,如果已更改)的路径
来自文档 File.expand_path
将路径名转换为绝对路径名。
由于您可能需要该目录,因此您应该使用File.dirname(__FILE__)
,因此您的文件路径myconfig.yml
应该使用
File.join(File.expand_path(File.dirname(__FILE__)), 'myconfig.yml')
在最近的 Ruby (>=2.0.0) 中,您可以使用__dir__
(来自 Archonic 的评论):
返回调用此方法的文件目录的规范化绝对路径。这意味着路径中的符号链接已解决。如果FILE为 nil,则返回 nil。返回值等于 File.dirname(File.realpath( FILE ))。