作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在节点中是否有像'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 上的例子.
关于go - 如何在 golang 中将相对路径解析为绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261719/
我是一名优秀的程序员,十分优秀!