gaq*_*qzi 67

File.dirname(__FILE__)将为您提供相对于正在运行的脚本的路径. File.expand_path(File.dirname(__FILE__))会给你绝对的路径.


Nat*_*ong 60

使用 __dir__

从Ruby 2.0开始,这__dir__是最简单的方法.它

返回调用此方法的文件的目录的规范化绝对路径.

请参阅__dir__文档和" 为什么__FILE__大写和__dir__小写? ".


Mat*_*zny 9

__dir__

File.dirname(__FILE__) 不是获取存储脚本的目录的正确方法。

开始时工作目录和脚本文件目录是一样的,但它可能会改变。

例如:

Dir.chdir('..') do
    puts __dir__
    puts File.expand_path(File.dirname(__FILE__))
end
Run Code Online (Sandbox Code Playgroud)

对于存储在/Desktop/tmp运行中的脚本文件,它将给出输出

/home/mateusz/Desktop/tmp
/home/mateusz/Desktop
Run Code Online (Sandbox Code Playgroud)