gpt4 book ai didi

c# - 要在外部解压缩的 sharpziplib 压缩文件

转载 作者:行者123 更新时间:2023-11-30 21:14:29 26 4
gpt4 key购买 nike

我有一个场景,我想使用 SharpZipLib 压缩电子邮件附件。然后最终用户将打开附件并解压缩附件。

最初使用 SharpZipLib 压缩的文件是否可以通过其他程序为我的最终用户轻松解压缩?

最佳答案

这取决于您如何使用 SharpZipLib。使用此库压缩数据的方法不止一种。

下面是创建一个 zip 文件的方法示例,您几乎可以在任何支持 zip 的应用程序中打开该文件:

private static byte[] CreateZip(byte[] fileBytes, string fileName)
{
using (var memoryStream = new MemoryStream())
using (var zipStream = new ZipOutputStream(memoryStream))
{
var crc = new Crc32();
crc.Reset();
crc.Update(fileBytes);

var zipEntry =
new ZipEntry(fileName)
{
Crc = crc.Value,
DateTime = DateTime.Now,
Size = fileBytes.Length
};
zipStream.PutNextEntry(zipEntry);
zipStream.Write(fileBytes, 0, fileBytes.Length);
zipStream.Finish();
zipStream.Close();
return memoryStream.ToArray();
}
}

用法:

var fileBytes = File.ReadAllBytes(@"C:/1.xml");

var zipBytes = CreateZip(fileBytes, "MyFile.xml");

File.WriteAllBytes(@"C:/2.zip", zipBytes);

此 CreateZip 方法针对内存中已有字节并且只想压缩它们并发送而不保存到磁盘的情况进行了优化。

关于c# - 要在外部解压缩的 sharpziplib 压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222064/

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