从同一目录打开文件

时间:2013-05-06 16:18:34

标签: ruby siri

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

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

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

我必须缺少一个

1 个答案:

答案 0 :(得分:1)

如果在ruby文件中使用以下内容,则应获取其所在的绝对路径

File.expand_path(__FILE__)

来自doc __FILE__

  

当前正在执行的文件的名称,包括相对于启动应用程序的目录的路径(或当前目录,如果已更改)

来自doc 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 ))。