gpt4 book ai didi

go - 如何获得全局路径的顶级路径?

转载 作者:IT王子 更新时间:2023-10-29 02:23:55 27 4
gpt4 key购买 nike

例如

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 路径。

最佳答案

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 模式成为绝对模式。

关于go - 如何获得全局路径的顶级路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31071382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com