0

好的,所以使用 siriproxy 它是我的 lib 文件夹以及插件的 rb 文件,我创建了一个 myconfig.yml 文件,因此我可以通过写入该文件来更改某些设置。

我已经能够写入文件,但前提是我包含从主目录一直向下的完整路径。

但是有没有办法从我所在的同一目录打开文件?我已经尝试了所有我能想到的路径组合。

一定有一个我想念的

4

1 回答 1

1

如果您在 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 ))。

于 2013-05-06T16:27:20.717 回答