1234567891011121314151617181920212223242526272829303132333435363738 |
- package util
- import (
- "io/ioutil"
- "path/filepath"
- )
- // expression: globbing patterns
- func MatchFiles(in string) ([]string, error) {
- dir, pattern := filepath.Split(in)
- abs, err := filepath.Abs(dir)
- if err != nil {
- return nil, err
- }
- files, err := ioutil.ReadDir(abs)
- if err != nil {
- return nil, err
- }
- var res []string
- for _, file := range files {
- if file.IsDir() {
- continue
- }
- name := file.Name()
- match, err := filepath.Match(pattern, name)
- if err != nil {
- return nil, err
- }
- if !match {
- continue
- }
- res = append(res, filepath.Join(abs, name))
- }
- return res, nil
- }
|