回答

收藏

结合绝对路径和相对路径得到一个新的绝对路径

技术问答 技术问答 377 人阅读 | 0 人回复 | 2023-09-11

我正在编写一个程序,其中一个组件必须能够采用给定的路径(例如/help/index.html,or /help以及基于该位置的相对路径(例如../otherpage/index.html,or sub/dir/of/help/,or help2.html)相对路径暗示产生绝对路径。考虑以下目录树。
+ B- p5 ^9 d! b
    /index.htmlcontent.txthelp/    help1.html    help2.html
    # y# z0 N( G1 p
该文件index.html包含一个链接,例如help/help1.html. 通过//or /index.html,并将其与help/help1.htmlget 组合/help/help1.html。% k; k. B" w) _) \1 M
同样,文件/help/help1.html具有链接../content.txt,程序需要从链接返回/content.txt。有没有合理的方法做到这一点?  F+ p: i2 q5 R) d$ l
谢谢你:)
9 D+ }, H8 r4 ~/ Q- M4 h编辑:这是我用的代码。
; P& X0 T) }4 n0 E; Z
    func join(source,target string) string    if path.IsAbs(target)        return target   }    return path.Join(path.Dir(source),target)}
    * a3 D$ `+ a4 Z6 y2 l& g1 x
               6 T, H  \( i" Z, C' w' P. B
    解决方案:                                                                ' |+ p5 ?5 {3 T
                                                                在path.Join与使用时path.Dir你应该做你想要的事。请参考互动示例http://golang.org/pkg/path/#example_Join。
  {! H! P: L1 w8 l6 v
    path.Join(path.Dir("/help/help1.html"),"../content.txt")0 r( U/ S5 t6 g3 E/ P
这将返回/content.txt。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则