go - filepath.Walk() - 我可以提供关于哪些目录不能行走的规则吗?

标签 go directory

我正在使用 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)
}

如有任何有关此问题的信息,我们将不胜感激。谢谢!

最佳答案

您可以通过返回错误 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”的普通文件的目录的其余部分。

关于go - filepath.Walk() - 我可以提供关于哪些目录不能行走的规则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38294216/

相关文章:

google-app-engine - 通过Regex Google数据存储区查询实体

javascript - Go lang 执行 javascript 以检索页面中的文本

Go 和 Redisgo : DialURL error: NOAUTH Authentication required

go - 使用 nats-streaming 发送大于 1MB 的消息?

javascript - 您可以使用 Javascript 生成图像和文件夹结构吗

java - 在java中检查文件创建权限的最佳方法是什么

java - 从 jar 中提取特定文件夹并将其复制到我的系统上所需的目的地

go - 在没有复制的情况下比较 Go 中的字符串和字节 slice

php - 试图让 php 将文件路径识别为域

macos - OSX : API for retrieving path to user's ~/temp folder