我正在使用GZIPStream和MemoryStream压缩CSV文件,并注意到结果文件有些奇怪。看起来像CSV没有被正确识别。这显示文件何时附加到电子邮件,但保存在Windows桌面上时工作正常。正确使用GZIP流和内存流压缩CSV
这是当前片段处理gzip的部分:
GZipStream gStream = null;
MemoryStream mStream = null;
MemoryStream mStream2 = null;
try
{
if (attachment.Length > 0)
{
mStream = new MemoryStream();
gStream = new GZipStream(mStream, CompressionMode.Compress);
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(attachment.ToString());
gStream.Write(bytes, 0, bytes.Length);
gStream.Close();
mStream2 = new MemoryStream(mStream.ToArray());
Attachment emailAttachement = new Attachment(mStream2, "myGzip.csv.gz", "application/x-Gzip");
mailMessage.Attachments.Add(emailAttachement);
}
}
什么节目吗?什么行为出乎意料?代码是什么样的? *什么*?如果您使用的是内存流,那么rsult [sic]文件是什么? – 2011-02-14 22:58:34
顺便说一句,如果我不得不猜测盲人:在你调用内存流的ToArray()之前,gzip流还没有关闭 – 2011-02-14 22:59:31