gpt4 book ai didi

c# - MailItem SaveAs() 方法文件类型

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:02 26 4
gpt4 key购买 nike

当我传递 olMHTML 时,它以 .msg 扩展名保存它,但如果我将扩展名更改为 .mht,它就可以完美地用作 mht 文件,如果我不这样做,我将无法打开扩展名为 .msg 的文件。如果我将它保存为 olMSGUnicode,它保存时没有扩展名,但添加 .msg 扩展名可以使其完美地用作 .msg 文件。

保存为 .mht 的正确方法是什么,因为 olMHTML 似乎是 .msg 格式,尽管它看起来不对,因为正如我所说,我在打开 msg 文件时遇到问题,但在重命名为 .mht 时工作正常,而 olMSGUnicode 而不是不使用扩展名单独保存,将文件作为 .msg 文件打开。

明确一点,为什么 olMHTML 保存为 msg 而不是 mht? olMSGUnicode 适用于 msg 文件,尽管它们保存时没有扩展名添加 .msg 使它们工作完美。正如将 olMHTML 从 .msg 更改为 .mht 一样。

编辑:通过在保存后执行 File.Move(),我可以将其重命名为 .mht 并且它工作正常,但以正确的格式保存会更方便。

EDIT2:评论者要求的代码:

        if (!filename.EndsWith(".mht"))
{
filename = filename + ".mht";
}
try
{
message.SaveAs(path + filename, Microsoft.Office.Interop.Outlook.OlSaveAsType.olMHTML);
MessageBox.Show(String.Format("Success saving file {0} at {1}", filename, path), "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
string newfilename = filename.Substring(0, filename.Length - 4) + ".mht";
File.Move(path + filename, path + newfilename);
}
catch (System.Exception ex)
{
MessageBox.Show(String.Format("Error {0} while trying to save {1} at {2}", ex, filename, path), "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}

我意识到我没有将 if 语句更新为不是 .msg,它现在可以工作了。但仍然没有解释为什么当使用 olMHTML 作为保存类型时,我得到一个没有扩展名而不是 .mht 扩展名的文件,我必须在使用其他 SaveAs 类型时指定它。但这是另一天的问题。我想出了答案。

最佳答案

如果您是在调用 MailItem.SaveAs 时指定文件名(包括扩展名)的人,我不确定如何获得错误的扩展名。

确保指定包含目录、文件名和扩展名的完全限定文件名。

关于c# - MailItem SaveAs() 方法文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30004859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com