例如a/b/c* -> a/ba/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 路径。
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
返回的文件名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 模式成为绝对的。
- 1 回答
- 0 关注
- 171 浏览
添加回答
举报
0/150
提交
取消