登录
首页 >  Golang >  Go问答

简单的文件系统路径拆分方法

来源:stackoverflow

时间:2024-02-07 08:06:26 128浏览 收藏

今天golang学习网给大家带来了《简单的文件系统路径拆分方法》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我想从 golang 中的文件系统路径创建段列表。

  • 在 windows 上:"a\b\c" 应解析为 ["a", "b", "c"]
  • 在 posix 系统上:"a/b/c" 应解析为 ["a", "b", "c"]

查看 path/filepath 包,我只能看到 split 函数,该函数仅将路径分成两个字符串,最后一段和其他所有内容。

是否有任何标准库函数可以将路径分成开箱即用的所有段?

我可以想到这个解决方法:

strings.split(filepath.toslash(path), "/")

我也在考虑递归地使用 filepath.split ,但它最终会陷入无限循环,因为 dir 字符串包含结束分隔符。请参阅此示例以了解为什么不能多次运行 split https://go.dev/play/p/xz-2dml0xwk。

func mySplit(path string) []string {
    dir, last := filepath.Split(path)
    if dir == "" {
        return []string{last}
    }
    return append(mySplit(dir), last)
}

正确答案


分割前清洁。

func mySplit(path string) []string {
    dir, last := filepath.Split(path)
    if dir == "" {
        return []string{last}
    }
    return append(mySplit(filepath.Clean(dir)), last)
}

终于介绍完啦!小伙伴们,这篇关于《简单的文件系统路径拆分方法》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>