gpt4 book ai didi

go - 如何在 golang 中将相对路径解析为绝对路径?

转载 作者:IT王子 更新时间:2023-10-29 01:18:07 25 4
gpt4 key购买 nike

在节点中是否有像'path.resolve'这样的api?或者有什么东西可以做同样的事情?

例如(nodejs 代码):path.resolve("~/sample.sh")应该得到:/home/currentuser/sample.sh

最佳答案

解析 ~(表示用户主目录)是另外一回事,通常是 shell 来解决这个问题。详情见Expand tilde to home directory .

如果你想从 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 上的例子.

参见相关问题:Resolving absolute path from relative path

关于go - 如何在 golang 中将相对路径解析为绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com