从. zip文件夹附加一个文件



.NET CORE中使用MailKit,可以使用以下命令加载附件:

bodyBuilder.Attachments.Add(FILE); 

我正在尝试从ZIP文件中附加一个文件:

using System.IO.Compression;    
string zipPath = @"./html-files.ZIP";
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
     //   bodyBuilder.Attachments.Add("msg.html");
          bodyBuilder.Attachments.Add(archive.GetEntry("msg.html"));
}

但它没有工作,并给了我APP"msg.html" not found,这意味着它试图从root目录加载一个同名的文件,而不是zipped目录。

bodyBuilder.Attachments.Add()没有接受ZipArchiveEntry的重载,所以使用archive.GetEntry("msg.html")没有机会工作。

最有可能发生的事情是编译器正在将ZipArchiveEntry转换为恰好是APP"msg.html"的字符串,这就是为什么你得到这个错误。

您需要做的是从zip存档中提取内容,然后将添加到附件列表中。

using System.IO;
using System.IO.Compression;
string zipPath = @"./html-files.ZIP";
using (ZipArchive archive = ZipFile.OpenRead (zipPath)) {
    ZipArchiveEntry entry = archive.GetEntry ("msg.html");
    var stream = new MemoryStream ();
    // extract the content from the zip archive entry
    using (var content = entry.Open ())
        content.CopyTo (stream);
    // rewind the stream
    stream.Position = 0;
    bodyBuilder.Attachments.Add ("msg.html", stream);
}

相关内容

  • 没有找到相关文章

最新更新