gpt4 book ai didi

go - 获取golang中目录的校验和

转载 作者:数据小太阳 更新时间:2023-10-29 03:03:13 24 4
gpt4 key购买 nike

有没有办法在 golang 中生成整个目录及其内容的校验和?

我知道那个人如何对目录进行压缩,然后获取该目录的校验和,但我想尽可能避免这种情况。

最佳答案

检查 Parallel digestion来自 https://blog.golang.org/pipelines 的示例,从 Digesting a tree 部分开始,可能会给您一些想法。

所以你可以从:

// MD5All reads all the files in the file tree rooted at root and returns a map
// from file path to the MD5 sum of the file's contents. If the directory walk
// fails or any read operation fails, MD5All returns an error.
func MD5All(root string) (map[string][md5.Size]byte, error) {
m := make(map[string][md5.Size]byte)
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.Mode().IsRegular() {
return nil
}
data, err := ioutil.ReadFile(path)
if err != nil {
return err
}
m[path] = md5.Sum(data)
return nil
})
if err != nil {
return nil, err
}
return m, nil
}

到平行版:https://blog.golang.org/pipelines/parallel.go

关于go - 获取golang中目录的校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50124923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com