加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在golang中解析绝对路径的相对路径?

发布时间:2020-12-16 09:25:34 所属栏目:大数据 来源:网络整理
导读:在节点中是否有类似’path.resolve’的api?或者某些事情也可以这样做? 例如(nodejs代码): path.resolve( “?/ sample.sh”) 应该得到:/home/currentuser/sample.sh 解决方法 解析?(表示用户家)是一个不同的故事,通常它是解决这个问题的 shell.详情请见 E
在节点中是否有类似’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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读