Skip to content

Instantly share code, notes, and snippets.

@genson1808
Forked from moongears/walk_sample.go
Created June 1, 2021 06:17
Show Gist options
  • Select an option

  • Save genson1808/6821e21ef769442f388d2da6b9a9d90a to your computer and use it in GitHub Desktop.

Select an option

Save genson1808/6821e21ef769442f388d2da6b9a9d90a to your computer and use it in GitHub Desktop.
Golang filepath.Walk sample
package main
import (
"fmt"
"os"
"path"
"path/filepath"
)
func main() {
gopath := os.Getenv("GOPATH")
fmt.Printf("[%s/bin]\n", gopath)
list := getShellScript(gopath)
for i, p := range list {
fmt.Printf("[%d:%s===%s]\n", i, path.Dir(p), path.Base(p))
}
}
func getShellScript(rootpath string) []string {
list := make([]string, 0, 10)
err := filepath.Walk(rootpath, func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
return nil
}
if filepath.Ext(path) == ".sh" {
list = append(list, path)
}
return nil
})
if err != nil {
fmt.Printf("walk error [%v]\n", err)
}
return list
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment