Ruby中是否有一种简单的方法可以从凌乱的文件路径中找到规范的文件路径?
例如:
a/b/../c/x 是相同的 a/c/xa/./b/c/x 是相同的 a/b/c/xa/./b/../../c/x 是相同的 c/x有什么简单的方法吗?
Ken*_*oom 31
require 'pathname'
Pathname.new("a/b/../c/x").cleanpath
Run Code Online (Sandbox Code Playgroud)
Mat*_*ggs 22
File.expand_path(file_name [,dir_string])→abs_file_name
将路径名转换为绝对路径名.除非给出dir_string,否则从进程的当前工作目录引用相对路径,在这种情况下,它将用作起始点.给定的路径名可以以a开头~,扩展到进程所有者的主目录(HOME必须正确设置环境变量).~user扩展到指定用户的主目录.
File.expand_path("~oracle/bin") #=> "/home/oracle/bin"
File.expand_path("../../bin", "/tmp/x") #=> "/bin"
Run Code Online (Sandbox Code Playgroud)