删除最后一条路径并复制新的最后一条

时间:2018-10-25 07:22:59

标签: go path filepath

例如,我需要分割项目的路径

/Users/i0564454/go/src/projectA/node

最后我需要这样

/Users/i0564454/go/src/projectA/projectA

除了remove最后一项和复制(新)最后一项之外,其他所有内容都是相同的

文件路径不需要太多迭代就可以帮助吗? https://gowalker.org/path/filepath

1 个答案:

答案 0 :(得分:2)

这也可以通过标准库实现。您可以使用/组合:

不进行错误检查(例如,所传递的路径中是否包含文件夹),则以下功能可以满足您的要求:

func convert(s string) string {
    dir := path.Dir(s)
    return path.Join(dir, path.Base(dir))
}

测试:

fmt.Println(convert("/Users/i0564454/go/src/projectA/node"))

输出(在Go Playground上尝试)。

/Users/i0564454/go/src/projectA/projectA

请注意,软件包path处理斜杠分隔的路径。如果您需要/想要支持特定于操作系统的路径,请使用path/filepath软件包的相同功能。