如何在golang中解析相对路径到绝对路径?
节点中是否有类似“ path.resolve”的API?还是有什么可以做的?
例如(nodejs代码): path.resolve("~/sample.sh")
应该得到:/home/currentuser/sample.sh
回答:
解决~
(表示用户的家)是另一回事,通常是由外壳来解决。。
如果要通过Go代码执行此操作,则可以使用该user.Current()
函数获取有关当前用户的详细信息,包括其主文件夹(即)User.HomeDir
。但是,您仍然必须自己替换它。
原始答案如下。
您可以使用path.Join()
或filepath.Join()
。
例如:
base := "/home/bob"fmt.Println(path.Join(base, "work/go", "src/github.com"))
输出:
/home/bob/work/go/src/github.com
您可以使用path.Clean()
和从路径中filepath.Clean()
“删除”点.
和双点..
。
您可以filepath.Abs()
用来解析相对路径并获取绝对路径(如果不是绝对路径,则在工作目录之前)。filepath.Abs()
也要求Clean()
结果。
例如:
fmt.Println(filepath.Abs("/home/bob/../alice"))
输出:
/home/alice <nil>
在Go Playground上尝试示例。
以上是 如何在golang中解析相对路径到绝对路径? 的全部内容, 来源链接: utcz.com/qa/430719.html