为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
宝慕林4294392 2021-10-18 14:32:02
例如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 模式成为绝对的。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信