我有一个 MemoryStream 代表一个 zip 文件。这是创建流的方式:
var zipMemoryStream = new MemoryStream();
using (var zipPackage = Package.Open(zipMemoryStream, FileMode.CreateNew))
{
foreach (var file in files)
{
var c = new Uri("/" + file.FileName + extension, UriKind.Relative);
var zipPart = zipPackage.CreatePart(c, fileType);
if (zipPart == null)
continue;
CopyStream(file.MemoryStream, zipPart.GetStream());
}
}
File.WriteAllBytes("C:\\ZipTest.zip", zipMemoryStream.ToArray());
try
{
mailMsg.Attachments.Add(new Attachment(zipMemoryStream, "ZipTest.zip",
MediaTypeNames.Application.Zip));
}
如您所见,我添加了 File.WriteAllBytes 行,它将流保存到我的 HDD(用于测试)。
如果 zip 中的文件为空,则保存在 HDD 上的文件完美无缺,重量约为 138B。
但是,我在邮件中收到的附件重量为 0B。
知道为什么附件重 0B 吗?