我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如/help/index.html或/help/)和基于该位置的相对路径(例如../otherpage/index.html或sub/dir/of/help/或help2.html)并产生绝对路径由相对路径暗示。考虑以下目录树。/index.htmlcontent.txthelp/ help1.html help2.html该文件index.html包含一个链接,如help/help1.html。程序通过/或/index.html,并将其与help/help1.htmlget组合/help/help1.html。同样,该文件/help/help1.html具有链接../content.txt,程序需要从该链接返回/content.txt。有合理的方法可以做到这一点吗?谢谢你。:)编辑:谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。func join(source, target string) string { if path.IsAbs(target) { return target } return path.Join(path.Dir(source), target)}
2 回答
莫回无
TA贡献1865条经验 获得超7个赞
Stephen的回答是正确的,但我想添加一些内容以节省将来的读者一些时间:
您应该注意路径包中的函数假定分隔符为/。使用上面的示例时,.由于使用的Windows的文件路径,因此我一直获取输出\。
如果您不操作URL,请考虑使用使用操作系统目录分隔符的文件路径包。
例如,在Windows上运行时:
path.Dir("C:\\Users\\Darren\\Desktop\\file.txt")
filepath.Dir("C:\\Users\\Darren\\Desktop\\file.txt")
返回值:
.
C:\Users\Darren\Desktop
- 2 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消