我在 .NET 3.5、Visual Studio 2010 中工作。我正在开发一个 Outlook 加载项,它将一些电子邮件保存到一个文件夹中。我已经使用该Microsoft.Office.Interop.Outlook.MailItem.SaveAs
功能使其工作。但是,文件属性只有当前时间(通过加载项导出文件的时间)作为其修改日期/创建日期等,而其他属性如 To、From、CC、BCC 不存在。
如果您在 Windows 资源管理器中打开一个文件夹(我使用的是 Windows 7),转到顶部显示名称、修改日期、类型等的位置,您可以单击更多,然后查看其他可能相关的列,例如“专辑艺术家”、“收件人”、“发件人”等。
C# 有一个非常简单的方法来修改时间,File.SetCreationTime(filename, DateTime object);
. 但是,没有 .SetTo 或 .SetAlbumArtist 或类似的东西。我将如何修改这些属性?
更新1:通过研究,我发现了这个链接:Read/Write 'Extended' file properties (C#),所以它可能包含答案......但我不知道怎么做。接受的答案提到使用 .dll 在 shell 上运行方法。第二个答案包含 C# 代码,然后评论者基本上问我想知道什么(如何修改特定文件的属性),下一个评论者回答“你不能设置这些”......所以我仍然在 1 号广场。
更新 2:我还尝试了以下方法:
foreach (Object selectedObject in explorer.Selection)
{
Outlook.MailItem email = (selectedObject as Outlook.MailItem);
//Modify the information about the email
email.To = "I filled in To";
email.SaveAs(filename, OlSaveAsType.olMSG);
}
此代码成功抓取选定的电子邮件并将它们保存在文件名下。但是,当您打开 .msg 时,email.To = "I packed in To" 会更改信息,但不会更改文件属性。