gpt4 book ai didi

arrays - 我如何在 Go 中找到所有具有特定扩展名的文件,而不考虑深度?

转载 作者:IT王子 更新时间:2023-10-29 02:30:51 25 4
gpt4 key购买 nike

我的目录结构如下所示:

/root
/folder_1
file_name_1.md
/folder_2
file_name_2.md
/folder_3
file_name_3.md
/folder_4
/sub_folder_1
file_name_4_1.md
file_name_4.md

是否有 glob 函数可用于获取包含 .md 文件的文件路径的数组?

例如:

[
"/root/folder_1/file_name_1.md",
"/root/folder_2/file_name_2.md",
"/root/folder_3/file_name_3.md",
"/root/folder_4/sub_folder_1/file_name_4_1.md",
"/root/folder_4/file_name_4.md"
]

谢谢。

最佳答案

下面的函数将递归遍历一个目录并返回名称与给定模式匹配的所有文件的路径:

func WalkMatch(root, pattern string) ([]string, error) {
var matches []string
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
if matched, err := filepath.Match(pattern, filepath.Base(path)); err != nil {
return err
} else if matched {
matches = append(matches, path)
}
return nil
})
if err != nil {
return nil, err
}
return matches, nil
}

用法:

files, err := WalkMatch("/root/", "*.md")

关于arrays - 我如何在 Go 中找到所有具有特定扩展名的文件,而不考虑深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55300117/

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