如何在ruby中获取不进行规范化的文件的绝对路径?

问题描述 投票:0回答:2

我当前的目录路径是

/a/b/c/
当我这么做的时候

fname = File.path("../test.rb")
::File.absolute_path(fname) 

输出为:

/a/b/test.rb 

我期待的是这样的输出:

/a/b/c/../test.rb 

基本上我需要文件的绝对路径,而不需要标准化

../
~

ruby-on-rails ruby absolute-path irb working-directory
2个回答
0
投票

你可以尝试 File.realpath() 方法吗?例如:

fname = File.realpath("test.rb", __dir__)

这将为您提供带有完整“..”引用的绝对路径。


0
投票

您可以通过

File.join
自己构建它:

Dir.pwd
#=> "/a/b/c"

File.join(Dir.pwd, "../test.rb")
#=> "/a/b/c/../test.rb"

请注意,

Dir.pwd
返回当前工作目录。要获取当前文件的目录,请使用
__dir__

© www.soinside.com 2019 - 2024. All rights reserved.