【问题标题】:remove the last path and duplicate the new last删除最后一条路径并复制新的最后一条
【发布时间】:2018-10-25 07:22:59
【问题描述】:

例如,我需要为路径拆分项目

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

我需要最后会是这样的

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

除了remove最后一项和复制(新的)最后一项外,一切都一样

文件路径可以在没有太多迭代的情况下提供帮助吗? https://gowalker.org/path/filepath

【问题讨论】:

  • 你有没有尝试过?请展示你的尝试。

标签: go path filepath


【解决方案1】:

标准库也可以做到这一点。您可以使用/组合:

没有错误检查(例如,如果传递的路径有文件夹),以下函数可以满足您的需求:

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 包的相同功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多