我在Windows上运行Ruby的,虽然我不知道是否应该有所作为。所有我想要做的就是当前工作目录的绝对路径。这是可能的IRB?显然从脚本它使用File.expand_path(__FILE__)可能

但是,从IRB我尝试以下,并得到了 “Permission denied” 错误:

File.new(Dir.new(".").path).expand
有帮助吗?

解决方案

其他提示

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"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top