win10 环境
想下个游戏补丁但是没法官方下 只能在其他源找了两个 然后比较一下 md5 校验下 由于 md5 不一致所以自己拆看压缩包一点一点对比 最后发现了以下情况
同一个文件 复制一下放在不同位置的文件夹下 比如文件叫 aaa.exe 然后复制后分别放在放在 C:/outer/inner 和 D:/outer/inner
1.直接对两个文件做 md5 计算 结果一样 2.将两个不同位置的 inner 文件夹进行压缩(用的 windows 自带的发送到 zip 压缩)后对压缩后的 inner.zip 进行 md5 计算 结果一样 3.将两个不同位置的 outer 文件夹进行压缩 压缩后的 outer.zip 计算 md5 结果不一样
1 和 2 很好理解 但是 3 是为啥 超出了我的理解
已经勾选了 windows 显示隐藏文件那个 没有任何隐藏文件
1
1OF7G 2019-12-16 15:03:01 +08:00
压缩包可能有一些其它冗余信息,比如文件属性或者压缩包的 meta 之类的。
你要对比两个文件夹相同,那应该递归对比里边的所有文件,而不是把文件夹压缩后对比。 |
2
nanoha OP @1OF7G 我后来确实用 powershell 的命令对比了一下里面的所有文件 md5 一致 但是我挺好奇为啥上面提到的 3 那种情况会发生 如果是压缩会产生一些额外信息的话 为什么情况 2 中的那样单层文件夹压缩的 md5 却是一致的
|
3
shijianit 2019-12-16 15:11:56 +08:00
按道理,同一个文件,压缩 2 次,2 个 zip 的 md5 应该也不一样的吧
|
4
Rekkles 2019-12-16 15:12:04 +08:00
Mac 系统下面会在文件夹属性里面存在一个 Access Time,每次访问都会 update 会导致属性变化 如果使用 zip 命令加上参数 -X 或者 --no-extra,Win 下面应该也会有类似的属性,建议 google 一下
|
5
1OF7G 2019-12-16 15:13:29 +08:00
@nanoha 这个为什么,依赖于压缩软件的实现方式,只有看文档或源码才能解释。有可能的一点是,inner 文件夹的创建 /修改 /访问 等等属性相同,而 outer 的不相同。
|
7
nanoha OP @1OF7G 你这么一说我好像有点头绪了 我记得 win7 之后好多文件夹是自带一些属性的(例如多媒体之类的)可能是这个 outer 放在不同位置导致创建时默认的类型不一致(大概。。。
|
8
jasonyang9 2019-12-16 15:18:16 +08:00
难不成是吧目录信息带进去了?
|
9
nanoha OP @jasonyang9 我用的都是 windows 自带的那个右键菜单里面的“发送到-zip 压缩” 按理来说 压缩时使用的参数是一样的 就算真是目录信息不一致 感觉也不能解释情况 2
|
10
wangyzj 2019-12-16 15:22:35 +08:00 1
压缩不仅仅是计算了文件内容把
应该还有创建时间和修改时间吧 毕竟压缩包里面要显示这些信息的 |
11
nanoha OP @wangyzj 有道理 我记不清当时那个 outer 和 inner 文件夹是创建的还是拖过去的了 可能是 inner 我是拖过去的但是 outer 是新创建的
|
12
Vegetable 2019-12-16 15:33:07 +08:00
当然不一样,因为压缩包最起码最起码保存了文件夹创建时间.
|
13
Vegetable 2019-12-16 15:33:47 +08:00 1
~/zip ⌚ 15:32:13
$ unzip -l 2/2.zip Archive: 2/2.zip Length Date Time Name --------- ---------- ----- ---- 0 2019-12-16 15:26 a/ 0 2019-12-16 15:26 a/1.txt --------- ------- 0 2 files ~/zip ⌚ 15:32:15 $ unzip -l 1/1.zip Archive: 1/1.zip Length Date Time Name --------- ---------- ----- ---- 0 2019-12-16 15:25 a/ 0 2019-12-16 15:25 a/1.txt --------- ------- 0 2 files |
14
nanoha OP @Vegetable 经过你和楼上几位老哥解释明白了 是文件夹信息导致的 我当时只想到目录结构 没考虑到文件夹时间等等问题
|
15
cnyang 2019-12-16 15:39:37 +08:00
看是不是系统问题,将硬盘挂载到另外一个系统试下,
我曾经也遇到过,本来以为是硬盘或内存的问题,但弄了半天还是一样,仔细一想系统自带软校验怎么都不可能是硬件问题,然后换了个系统正常了(杀毒没找到,估计是系统内核文件缺失) |
16
crab 2019-12-16 16:07:55 +08:00
压缩的文件保存了 ntfs 时间戳信息
|