如何在Walk文件夹中过滤子文件夹

时间:2014-04-30 03:18:49

标签: go

现在我使用Walk浏览我的文件夹,我想在扫描时过滤一些文件夹。

err := filepath.Walk("/home", func(path string, f os.FileInfo, err error) error {
    ...
})

文件夹结构为:

  home  
 / | \  
a  b  c  

我可以制作一些例外列表,即filepath.Walk 扫描文件夹a吗?也就是说,我不希望文件夹a中的任何文件添加到我的扫描结果中。

1 个答案:

答案 0 :(得分:4)

来自WalkFuc的文档:

  

如果返回错误,则处理停止。唯一的例外是,如果path是一个目录,并且该函数返回特殊值SkipDir,则会跳过该目录的内容,并在下一个文件中继续照常处理。

filepath.Walk是您要跳过的目录时,只需将传递给filepath.SkipDir的函数返回path