golang 如何使用fastwalk?

作者站长头像
站长
· 阅读数 19

遍历文件夹,包括子目录

以下是简化的代码:

// "github.com/charlievieth/fastwalk"

func main() {
    conf := fastwalk.Config{
        Follow: false,
    }
    var data_temp []string

    walkFn := func(path string, d fs.DirEntry, err error) error {
        if err != nil {
            return nil
        }

        if d.IsDir() {
            data_temp = append(data_temp, path + "\\")
            return fastwalk.Walk(&conf, path, walkFn)
        }
        data_temp = append(data_temp, path)
        return nil
    }

    _ := fastwalk.Walk(&conf, "文件夹路径", walkFn)

    fmt.Println(data_temp)
}

报错: undefined: walkFn

我不清楚如何定义一个正确的walkFn,请问应该如何修改呢?谢谢

回复
1个回答
avatar
test
2024-06-28
    var walkFn func(path string, d fs.DirEntry, err error) error
    walkFn = func(path string, d fs.DirEntry, err error) error {
           //......
    }

在 := 完全结束之前,前面定义的变量都是未定义。所以里面的递归就未定义了。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容