delphi中多个文件压缩问题

newenter15 2010-12-28 04:07:55
我现在使用VclZip.pro.v3.10.1第三方控件把多个文件进行压缩,以得到它的MD5值,可当我再用WinRAR工具把同样的文件进行压缩的时候,发现两个压缩包不一样,所以得到的两个MD5值也不一样,请问我该怎么做,才能使两个包大小一样呀?
...全文
194 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ffwin 2010-12-29
  • 打赏
  • 举报
回复
还是直接算文件的CRC32吧,与压缩率无关
newenter15 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 keeley20 的回复:]
压缩算法不一样,导致压缩后的体积不同,可以不使用第三方控件,直接调用Winrar对文件进行压缩。
[/Quote]
没有直接调用WinRAR压缩多个文件的例子
haitao 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cnewenter 的回复:]
引用 9 楼 sz_haitao 的回复:
原文件,原文件的md5值
一起压缩

客户解压,得到 原文件,md5值,
计算原文件的md5值 和 解压出来的md5值,两者是否对应
即原文件是否无误


移交给客户的必须是原文件,他们不需要压缩包,这个问题很头痛
[/Quote]

那就:
原文件,原文件的md5值m1
一起压缩,压缩包的md5值m2

传压缩包到客户那里,计算压缩包的md5值m3,是否等于m2
不等,则重新传

解压,得到 原文件,md5值m1,
计算原文件的md5值m4
如果m1=m4,即原文件是否无误
newenter15 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sz_haitao 的回复:]
原文件,原文件的md5值
一起压缩

客户解压,得到 原文件,md5值,
计算原文件的md5值 和 解压出来的md5值,两者是否对应
即原文件是否无误
[/Quote]

移交给客户的必须是原文件,他们不需要压缩包,这个问题很头痛
Frank.WU 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cnewenter 的回复:]
客户的要求是不管用什么样的工具,结果都要一样的
[/Quote]
这个不可能实现。
haitao 2010-12-28
  • 打赏
  • 举报
回复
原文件,原文件的md5值
一起压缩

客户解压,得到 原文件,md5值,
计算原文件的md5值 和 解压出来的md5值,两者是否对应
即原文件是否无误
keeley20 2010-12-28
  • 打赏
  • 举报
回复
压缩算法不一样,压缩率不一样,导致压缩后的体积不同,MD5肯定不同,同样是RAR,不同的版本,或者不同的选项,压缩同一个文件,得到的文件MD5未必相同。
newenter15 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 keeley20 的回复:]
引用 4 楼 cnewenter 的回复:

现在我做的是,把多个文件压缩之后得到MD5值,然后把这些文件和得到的MD5值交给客户,然后客户再对这些文件进行压缩把得到的MD5值与我们交给他的MD5值进行比较,如果一样的说明文件没有损坏,可现在的问题是就算文件没有损坏也有可能出现两个MD5不一样的情况,这怎么办呀?

你和客户共用你自己写的压缩工具不就可以了。
[/Quote]
客户的要求是不管用什么样的工具,结果都要一样的
keeley20 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cnewenter 的回复:]

现在我做的是,把多个文件压缩之后得到MD5值,然后把这些文件和得到的MD5值交给客户,然后客户再对这些文件进行压缩把得到的MD5值与我们交给他的MD5值进行比较,如果一样的说明文件没有损坏,可现在的问题是就算文件没有损坏也有可能出现两个MD5不一样的情况,这怎么办呀?
[/Quote]
你和客户共用你自己写的压缩工具不就可以了。
newenter15 2010-12-28
  • 打赏
  • 举报
回复
没有人知道吗?
newenter15 2010-12-28
  • 打赏
  • 举报
回复
现在我做的是,把多个文件压缩之后得到MD5值,然后把这些文件和得到的MD5值交给客户,然后客户再对这些文件进行压缩把得到的MD5值与我们交给他的MD5值进行比较,如果一样的说明文件没有损坏,可现在的问题是就算文件没有损坏也有可能出现两个MD5不一样的情况,这怎么办呀?
keeley20 2010-12-28
  • 打赏
  • 举报
回复
压缩算法不一样,导致压缩后的体积不同,可以不使用第三方控件,直接调用Winrar对文件进行压缩。
newenter15 2010-12-28
  • 打赏
  • 举报
回复
可是压缩大小不一样,得到的两个MD5值就会不一样呀。
bdmh 2010-12-28
  • 打赏
  • 举报
回复
各自有各自的压缩算法,你以为天下 压缩软件都一样呀

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧