CodeFun Go

遍历文件树

filepath.Walk 函数可用于递归遍历目录树中的所有文件/文件夹。

filepath.WalkFunc func(path string, info os.FileInfo, err error) error

如果在遍历文件/文件夹时发生任何错误,将使用文件/文件夹和fileInfo的路径或错误调用 WalkFunc 。

package main

import (
    "fmt"
    "log"
    "os"
    "path/filepath"
)

func main() {
    path := "/path/to"
    filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
        if err != nil {
            log.Fatalf(err.Error())
        }
        if info.IsDir() {
            fmt.Printf("Dir Name: %s\n", info.Name())
        } else {
            fmt.Printf("File Name: %s\n", info.Name())
        }
        
        return nil
    })
}
Dir Name: handler
File Name: a.go
File Name: b.go
File Name: c.go
Dir Name: main
File Name: main.go
File Name: test.go