DotNetZip存在一个奇怪的问题,我似乎找不到解决方法。
我已经搜索了几个小时,但仍然找不到任何相关信息,所以现在向您求助。
var ms = new MemoryStream();
using (var archive = new Ionic.Zip.ZipFile()) {
foreach (var file in files) {
// string byte[]
var entry = archive.AddEntry(file.Name, file.Data);
entry.ModifiedTime = DateTime.Now.AddYears(10); // Just for testing
}
archive.Save(ms);
}
return ms.GetBuffer();
我需要添加修改时间,这很关键,但现在我只有一个虚拟的时间戳。
当我用WinRAR打开文件时,它会显示“存档意外结束”。每个单独的文件都具有校验和00000000,WinRAR会显示“存档文件格式未知或已损坏”。我可以修复它,这将使它缩小20%并使一切正常。但实际上这并没有什么用处。
当我添加所有条目后进行断点时,我可以在zip.Entries
中看到所有条目都具有相同的坏CRC,但所有数据似乎都存在。所以不能是我保存存档文件的方式有问题。
我在其他地方使用我的文件集合没有问题,这让DotNetZip变得奇怪。嗯,要么是这样,要么是我误解了什么 :)