我在Windows上运行Ruby,虽然我不知道这是否有什么不同。我所要做的就是获取当前工作目录的绝对路径。这可能从irb吗?显然,在脚本中可以使用File.expand_path(__FILE__)
但是从irb,我尝试了以下,得到了一个“权限被拒绝”错误:
File.new(Dir.new(".").path).expand
我在Windows上运行Ruby,虽然我不知道这是否有什么不同。我所要做的就是获取当前工作目录的绝对路径。这可能从irb吗?显然,在脚本中可以使用File.expand_path(__FILE__)
但是从irb,我尝试了以下,得到了一个“权限被拒绝”错误:
File.new(Dir.new(".").path).expand
当前回答
文件。expand_path file .dirname(__FILE__)将返回相对于调用此命令的文件的目录。
但Dir。PWD返回工作目录(结果与在终端中执行PWD相同)
其他回答
这将为您提供当前文件的工作目录。
File.dirname(__FILE__)
例子:
current_file:“/用户/ nemrow / SITM / folder1 / folder2 / amazon.rb”
论点:“/ \用户nemrow SITM / folder1 - folder2 "
文件。expand_path file .dirname(__FILE__)将返回相对于调用此命令的文件的目录。
但Dir。PWD返回工作目录(结果与在终端中执行PWD相同)
至于相对于当前执行脚本的路径,因为Ruby 2.0也可以使用
__dir__
所以这基本上和
File.dirname(__FILE__)
通过这种方式,您可以获得位于任何目录中的任何文件的绝对路径。
File.join(Dir.pwd,'some-dir','some-file-name')
它会返回
=> "/User/abc/xyz/some-dir/some-file-name"
如果你想获取当前rb文件目录的完整路径:
File.expand_path('../', __FILE__)