Как найти все файлы с определенным расширением в Go независимо от их глубины?

Как насчет использования следующего регулярного выражения:

(?<=My cow\s).*?(?=\smilk)
1
задан LogicalBranch 22 March 2019 в 12:57
поделиться

1 ответ

Функция ниже будет рекурсивно проходить через каталог и возвращать пути ко всем файлам, чье имя соответствует заданному шаблону:

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")
0
ответ дан Tim Cooper 22 March 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: