我使用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