gpt4 book ai didi

.NET 4.5 ZipFile 类未生成一致的文件

转载 作者:行者123 更新时间:2023-12-01 09:20:41 24 4
gpt4 key购买 nike

也许我只是不了解 Zip 文件...这就是我所拥有的。我正在使用下面粘贴的代码来压缩我的 java 工作区并将其推送到网络驱动器。目的是我将在 PC 登录时运行它。我关闭了所有 Java 窗口,我运行了该工具两次。根据 .NET 和我将它们复制到的 linux 系统,我生成了 2 个字节长度相同但 MD5 不同的 zip。

但是,当我手动使用 7zip 从我的 java 目录创建一个 zip 文件时,我做了 2 次,并且文件具有相同的 MD5。

任何人都可以验证此问题或提供一些见解来了解可能导致此问题的原因吗?据我了解,zip 文件应该是可重复的,算法中没有随机种子或任何东西。此代码是使用 VS2012 编译的,并使用汇编中链接的 System.IO.Compression.FileSystem 内容。

 Public Sub New(sourceDir As String, baseName As String)
s = sourceDir
t = t + baseName + ".zip"
ZipFile.CreateFromDirectory(s, t, Compression.CompressionLevel.NoCompression, False)
Dim stream As IO.FileStream = IO.File.OpenRead(t)
Dim md5 As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create()
hash = BitConverter.ToString(md5.ComputeHash(stream))
md5.Dispose()
stream.Close()
Dim file As New System.IO.FileInfo(t)
fname = baseName + "." + hash + ".zip"
t = file.DirectoryName + "\" + fname
file.MoveTo(t)
End Sub

最佳答案

有点猜测,但 Zip header 规范包含 File last modification date/time 的字段.这很可能被设置为文件创建时间,这在两次运行之间会有所不同。

如果使用二进制文件编辑器,您可以很容易地检查是否属于这种情况。

关于.NET 4.5 ZipFile 类未生成一致的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20864039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com