我使用DotNetZip将文件从MemoryStream
添加到一个zip文件,然后将该zip保存为MemoryStream
,以便我可以通过电子邮件发送附件。下面的代码不会犯错,但MemoryStream
一定不能做正确的,因为它是不可读的。当我将压缩文件保存到我的硬盘驱动器时,一切都很完美,只是当我尝试将其保存到流中时不行。DotNetZip保存到流
using (ZipFile zip = new ZipFile())
{
var memStream = new MemoryStream();
var streamWriter = new StreamWriter(memStream);
streamWriter.WriteLine(stringContent);
streamWriter.Flush();
memStream.Seek(0, SeekOrigin.Begin);
ZipEntry e = zip.AddEntry("test.txt", memStream);
e.Password = "123456!";
e.Encryption = EncryptionAlgorithm.WinZipAes256;
var ms = new MemoryStream();
ms.Seek(0, SeekOrigin.Begin);
zip.Save(ms);
//ms is what I want to use to send as an attachment in an email
}
如果内存流是zip数据,你不期望它是不可读的吗? –
您是否曾尝试将内存流保存到文件,并验证该文件的内容是否与文件不同时将文件直接从ZipFile保存到文件? – erikH
Sam我是 - 我正在使用内存流并将它作为名为test.zip的附件发送。然后去了我认为我应该能够把它作为一个普通的zip文件。我在想这个错误吗? – user229133