我正在使用Go 1.7rc1编写GoLang应用程序。
现在我想找到特定路径中的所有go文件。除此之外,我不想走一些目录..例如..隐藏目录,如.git
。
有没有办法为Walk()
提供一些规则?或..是否有不同的库提供这些功能?
现在这是我的代码:
func visit(path string, f os.FileInfo, err error) error {
fmt.Printf("Visited: %s\n", path)
return nil
}
func main() {
filepath.Walk(path,visit)
}
非常感谢有关该问题的任何信息。谢谢!
答案 0 :(得分:9)
您可以通过从访问函数返回错误filepath.SkipDir来跳过目录。
这里是如何跳过.git目录:
func visit(path string, f os.FileInfo, err error) error {
if f.IsDir() && f.Name() == ".git" {
return filepath.SkipDir
}
fmt.Printf("Visited: %s\n", path)
return nil
}
需要测试f.IsDir()
以避免跳过包含名为" .git"的普通文件的目录的其余部分。