如何在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
