e.g。
a/b/c* -> a/b
a/b/c*/*/*b -> a/b
为什么我需要这个是因为我想获得globed文件名的abs路径。 代码示例:
files, _ := filepath.Glob(p)
top := __magic here__
for _, f := range files {
abs, _ := filepath.Abs(path.Join(top, f))
fmt.Println(abs)
}
是否存在用于此目的的方法?否则我必须自己实施。
修改
神奇的是首先使glob glob path abs,然后是glob返回abs路径。
答案 0 :(得分:0)
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模式绝对。