Ruby中的规范文件路径
在Ruby中,有没有一种简单的方法可以从混乱的文件路径中找到规范的文件路径 例如:Ruby中的规范文件路径,ruby,path,Ruby,Path,在Ruby中,有没有一种简单的方法可以从混乱的文件路径中找到规范的文件路径 例如: a/b/./c/x与a/c/x a//b/c/x与a/b/c/x a//b/../c/x与c/x 有什么简单的方法吗?文件。展开路径(文件名[,目录字符串])→ abs文件名 require 'pathname' Pathname.new("a/b/../c/x").cleanpath 将路径名转换为绝对路径名。除非给出dir_字符串,否则从进程的当前工作目录引用相对路径,在这种情况下,它将用作起点。给定
与a/b/./c/x
a/c/x
与a//b/c/x
a/b/c/x
与a//b/../c/x
c/x
require 'pathname'
Pathname.new("a/b/../c/x").cleanpath
将路径名转换为绝对路径名。除非给出dir_字符串,否则从进程的当前工作目录引用相对路径,在这种情况下,它将用作起点。给定的路径名可以以~
开头,它扩展到进程所有者的主目录(必须正确设置环境变量home
)~user
扩展到命名用户的主目录
File.expand_path("~oracle/bin") #=> "/home/oracle/bin"
File.expand_path("../../bin", "/tmp/x") #=> "/bin"
如果您也希望摆脱符号链接(如Qt的
canonicalFilePath
),那么请使用realpath
而不是cleanpath
@Erik。您应该知道,realpath
与cleanpath
不同,它会访问文件系统,如果路径不存在,就会失败。