0

Zipファイルを表すMemoryStreamがあります。ストリームの作成方法は次のとおりです。

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));
}

ご覧のとおり、ストリームを HDD に保存する File.WriteAllBytes という行を追加しました (テスト用)。

HDD に保存されたファイルは完璧で、zip 内のファイルが空の場合、重量は約 138B です。

ただし、メールで受け取る添付ファイルの重量は 0B です。

アタッチメントの重さが 0B である理由が分かりますか?

4

1 に答える 1