如何从IRB当前工作目录的绝对路径
-
20-09-2019 - |
题
我在Windows上运行Ruby的,虽然我不知道是否应该有所作为。所有我想要做的就是当前工作目录的绝对路径。这是可能的IRB?显然从脚本它使用File.expand_path(__FILE__)
可能
但是,从IRB我尝试以下,并得到了 “Permission denied” 错误:
File.new(Dir.new(".").path).expand
解决方案
Dir.pwd
似乎可以解决问题。
其他提示
File.expand_path File.dirname(__FILE__)
将返回相对于该命令从调用的文件目录。
但是Dir.pwd
返回工作目录(结果等同于终端执行pwd
)
作为相对于当前执行的脚本的路径中,由于<强>红宝石2.0 强>也可以使用
__dir__
因此,这是基本相同
File.dirname(__FILE__)
这会给你当前文件的工作目录。
File.dirname(__FILE__)
示例:
current_file: “/Users/nemrow/SITM/folder1/folder2/amazon.rb”
结果: “/用户/ nemrow / SITM / folder1中/文件夹2”
如果你想获得当前的RB文件的目录的完整路径:
File.expand_path('../', __FILE__)
通过这个你可以位于任何目录下的文件的绝对路径。
File.join(Dir.pwd,'some-dir','some-file-name')
这将返回
=> "/User/abc/xyz/some-dir/some-file-name"
不隶属于 StackOverflow