文章目錄

go里面遍历目标很简单,直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var dirList = make([]string, 0)
var fileList = make([]string, 0)
func getFilelist(path string) error {
err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error {
if f == nil {
return err
}
if !isVaild(path) {
return filepath.SkipDir
}
if f.IsDir() {
dirList = append(dirList, path)
} else {
fileList = append(fileList, path)
}
return nil
})
if err != nil {
return err
}
}

通过filepath.Walk可以遍历出path下的所有目录和文件,包括所有的子目录。
下面要说的才是关键

filepath.Walk是递归遍历既定路径下的所有目录及子目录的,如果想跳过某个目标不遍历,可在WalkFunc里直接return filepath.SkipDir

文章目錄