我有一个场景,我想使用SharpZipLib压缩电子邮件附件。然后,最终用户将打开附件并解压缩附加的文件。
最初使用SharpZipLib压缩的文件是否可以由其他程序轻松地为最终用户解压缩?
发布于 2011-06-03 09:30:32
这取决于您如何使用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方法针对以下情况进行了优化:内存中已有字节,而您只想压缩它们并发送,甚至不保存到磁盘。
https://stackoverflow.com/questions/6222064
复制相似问题