Go语言:递归遍历一个文件夹的所有文件(带层级化输出)
2019-10-24 本文已影响0人
白祤星
代码实例:
package main
import (
"io/ioutil"
"strings"
)
func main() {
// 要遍历的文件夹
dir := `./`
// 遍历的文件夹
// 参数:要遍历的文件夹,层级(默认:0)
findDir(dir, 0)
}
// 遍历的文件夹
func findDir(dir string, num int) {
fileinfo, err := ioutil.ReadDir(dir)
if err != nil {
panic(err)
}
// 遍历这个文件夹
for _, fi := range fileinfo {
// 重复输出制表符,模拟层级结构
print(strings.Repeat("\t", num))
// 判断是不是目录
if fi.IsDir() {
println(`目录:`, fi.Name())
findDir(dir+`/`+fi.Name(), num+1)
} else {
println(`文件:`, fi.Name())
}
}
}