Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在golang中解析绝对路径的相对路径?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在节点中是否有类似’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

大佬总结

以上是大佬教程为你收集整理的如何在golang中解析绝对路径的相对路径?全部内容,希望文章能够帮你解决如何在golang中解析绝对路径的相对路径?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。