public static void saveStream(WebResponse respon, string fullPath) { Stream internetStream = respon.GetResponseStream(); MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); try { byte[] retVal = md5.ComputeHash(internetStream); string str_md5 = BitConverter.ToString(retVal);//http响应流的md5//这里很耗费时间 string str2_md5 = getmd5forfile();//本地文件的md5 bool isequals = str_md5.Equals(str2_md5);//二者md5比较 } catch (Exception) { throw; } internetStream.Close(); }
byte[] retVal = md5.ComputeHash(internetStream);
在这里你是下载整个文件了!如果文件大,当然慢啦。。。。。
拿最前面的5KB和文件大小做MD5比较吧,不需要整个文件比较。。。。
哦哦,好滴。但是还有个疑问哈。
难道这句话才真正的在下载?md5.ComputeHash(internetStream);
而这句话没有执行真正的下载啊Stream internetStream = respon.GetResponseStream();