【发布时间】:2012-07-13 03:07:50
【问题描述】:
我正在使用 .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 = "我填写了 To" 会更改信息,但不会更改文件属性。
【问题讨论】:
-
没有 File.Tag 就像有一个 File.SetCreationTime()...你的意思是我应该可以在哪里访问它?
-
这里有一个链接,您可以查看 .. 但您必须将代码转换为 C#,或者您可以使用 VB.NET 代码并使用 Microsoft.VisualBasic @987654322 将您的标题放入@
标签: c#