golang 文件md5_go 读取文件夹所有文件并生成md5 字符串

为文件生成MD5字符串

func CreateMd5(filename string, md5str *string) {

f, err := os.Open(filename)

if err != nil {

fmt.Println("Open", err)

return

}

defer f.Close()

md5hash := md5.New()

if _, err := io.Copy(md5hash, f); err != nil {

fmt.Println("Copy", err)

return

}

md5hash.Sum(nil)

*md5str = fmt.Sprintf("%x", md5hash.Sum(nil))

}

读取文件夹下面的所有文件,为其创建md5字符串并存入redis

func GetFileName(dir string, redisClient redis.Conn) {

var md5str string

//获取指定文件下的所有文件

err := filepath.Walk(dir,

func(path string, info os.FileInfo, err error) error {

if err != nil {

return err

}

//去除子文件夹

if info.IsDir() == false {

//调用上面CreateMd5函数,为每个文件创建MD5,这里的path就是给定目录下的文件的绝对路径

CreateMd5(path, &md5str)

//把MD5sr存入redis

_, err = redisClient.Do("HSET", "XzWxClientMd5Sign", path, md5str)

if err != nil {

log.Println("Set key err: ", err)

}

}

return nil

})

if err != nil {

log.Println(err)

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值