目录

通过 hash 判断文件是否被修改

目录

背景

在很多场景下,我们都需要判断项目中文件是否被修改,然后触发一些指定的操作,那么就可以对文件进行 hash,生成 hash code,每次的 hash code 和上次的进行对比,不一致则表明文件被修改

实现

通过一下函数对指定文件进行hash md5,生成md5字符串,修改文件后再生成新的md5字符串,两个对比即可知道文件是否有改动

func Md5sumFile(filepath string) (string,error) {
    file, err := os.Open(filepath)
    if err != nil {
        return "", err
    }
    defer file.Close()

    hash := md5.New()
    if _, err := io.Copy(hash, file); err != nil {
        return "", err
    }

    result := hex.EncodeToString(hash.Sum(nil))
    return result, nil
}