我在Windows上运行Ruby虽然我不知道这是否应该有所作为。我想要做的就是获取当前工作目录的绝对路径。这可能来自irb吗?显然,从脚本中可以使用File.expand_path(__FILE__)
但是从irb我尝试了以下内容并得到了“Permission denied”错误:
File.new(Dir.new(".").path).expand
答案 0 :(得分:473)
Dir.pwd
似乎可以解决问题。
答案 1 :(得分:178)
File.expand_path File.dirname(__FILE__)
将返回相对于调用此命令的文件的目录。
但Dir.pwd
返回工作目录(结果与终端中执行pwd
相同)
答案 2 :(得分:53)
至于相对于当前执行脚本的路径,因为 Ruby 2.0 你也可以使用
__dir__
所以这与
基本相同File.dirname(__FILE__)
答案 3 :(得分:4)
这将为您提供当前文件的工作目录。
File.dirname(__FILE__)
示例:
current_file:“/ Usrs /nemrow / SITM / folder1 / folder2 / amazon.rb”
结果:“/ Users / nemrow / SITM / folder1 / folder2”
答案 4 :(得分:3)
如果要获取当前rb文件目录的完整路径:
File.expand_path('../', __FILE__)
答案 5 :(得分:2)
通过这个,您可以获得位于任何目录中的任何文件的绝对路径。
File.join(Dir.pwd,'some-dir','some-file-name')
这将返回
=> "/User/abc/xyz/some-dir/some-file-name"