func compare(spath,dpath string) bool { sinfo,err := os.Lstat(spath) if err != nil { return false } dinfo,err := os.Lstat(dpath) if { returnfalse } sinfo.Size() != dinfo.Size() || !sinfo.ModTime().Equal(dinfo.ModTime()) { return comparefile(spath,dpath) }
{ sFile,err := os.Open(spath) } dFile,err := os.Open(dpath) } b := comparebyte(sFile,dFile) sFile.Close() dFile.Close() b }
//下面可以代替md5比较. comparebyte(sfile *os.File,dfile *os.File) { var sbyte []byte = make([], 512) dbyte [] serr,derr error for { _,serr = sfile.Read(sbyte) _,derr = dfile.Read(dbyte) if serr != || derr != if serr != derr { } serr == io.EOF { break } } if bytes.Equal(sbyte,dbyte) { continue } returntrue }
查看原文:http://www.zoues.com/2016/10/20/golang%e4%b8%8d%e4%bd%bf%e7%94%a8md5%e6%af%94%e8%be%83%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9%e6%98%af%e5%90%a6%e4%b8%80%e8%87%b4/ (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|