如何获得 glob 路径的顶部路径?

例如


a/b/c* -> a/b

a/b/c*/*/*b -> a/b

为什么我需要这个是因为我想获得地球文件名的绝对路径。代码示例:


files, _ := filepath.Glob(p)

top := __magic here__

for _, f := range files {

    abs, _ := filepath.Abs(path.Join(top, f))

    fmt.Println(abs)

}

是否有任何存在的方法用于此目的?否则我必须自己实现。


编辑


神奇的是首先使 glob 路径 abs,然后 glob 返回 abs 路径。


宝慕林4294392
浏览 159回答 1
1回答

郎朗坤

返回的文件名filepath.Glob()已经是绝对的(但请阅读下文)。看这个例子:fs, err := filepath.Glob("/dev/../dev/*")if err != nil {    panic(err)}for _, f := range fs {    fmt.Println(f, filepath.IsAbs(f))}输出:/dev/null true/dev/random true/dev/urandom true/dev/zero true在Go Playground.编辑:如果 glob 模式是绝对的,则返回的文件名仅是绝对的。所以最简单的方法是使 glob 模式成为绝对的。
打开App,查看更多内容
随时随地看视频慕课网APP