297

我在 Windows 上运行 Ruby,但我不知道这是否会有所作为。我要做的就是获取当前工作目录的绝对路径。这可能来自irb吗?显然从脚本中可以使用File.expand_path(__FILE__)

但是从 irb 我尝试了以下操作并收到“权限被拒绝”错误:

File.new(Dir.new(".").path).expand
4

6 回答 6

549

Dir.pwd似乎可以解决问题。

http://ruby-doc.org/core/Dir.html#method-c-pwd

于 2009-12-21T01:31:05.403 回答
193

File.expand_path File.dirname(__FILE__)将返回相对于调用此命令的文件的目录。

Dir.pwd返回工作目录(结果与pwd在终端中执行相同)

于 2011-09-26T08:27:12.097 回答
64

至于相对于当前执行脚本的路径,从Ruby 2.0开始也可以使用

__dir__

所以这基本上是一样的

File.dirname(__FILE__)
于 2015-03-19T15:25:14.627 回答
6

这将为您提供当前文件的工作目录。

File.dirname(__FILE__)

例子:

current_file: "/Users/nemrow/SITM/folder1/folder2/amazon.rb"

结果:“/Users/nemrow/SITM/folder1/folder2”

于 2014-07-14T17:11:18.963 回答
6

通过这个,您可以获得位于任何目录中的任何文件的绝对路径。

File.join(Dir.pwd,'some-dir','some-file-name')

这将返回

=> "/User/abc/xyz/some-dir/some-file-name"
于 2017-03-06T11:38:48.613 回答
5

如果要获取当前rb文件所在目录的完整路径:

File.expand_path('../', __FILE__)
于 2016-10-06T03:26:58.197 回答