github.com/scottcagno/storage@v1.8.0/pkg/filesystem/util.go (about) 1 package filesystem 2 3 import ( 4 "io/fs" 5 "io/ioutil" 6 "path/filepath" 7 ) 8 9 func List(dir string, fn func(f fs.FileInfo) error) error { 10 files, err := ioutil.ReadDir(dir) 11 if err != nil { 12 return err 13 } 14 for _, f := range files { 15 err = fn(f) 16 if err != nil { 17 if err == fs.SkipDir { 18 continue 19 } 20 return nil 21 } 22 } 23 return nil 24 } 25 26 func Walk(dir string, fn func(f fs.FileInfo) error) error { 27 err := filepath.Walk(dir, 28 func(path string, f fs.FileInfo, err error) error { 29 if err != nil { 30 return err 31 } 32 err = fn(f) 33 if err != nil { 34 if err == fs.SkipDir { 35 return fs.SkipDir 36 } 37 return err 38 } 39 return nil 40 }) 41 if err != nil { 42 return err 43 } 44 return nil 45 }