我正在.NET 3.5,Visual Studio 2010中工作。我正在研究一個將某些電子郵件保存到文件夾的Outlook加載項。我已經使用Microsoft.Office.Interop.Outlook.MailItem.SaveAs
函數得到它的工作。但是,文件屬性只有當前時間(通過加載項導出文件的時間),因爲它們的「修改日期/創建日期等」以及其他屬性(如「到」,「從」,「抄送」,「密件抄送」)都不存在。在C#中修改除日期以外的文件屬性
如果您在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);
}
此代碼成功地抓住選定的電子郵件(S)和將它們保存在文件名。但是,當您打開.msg時,email.To =「我填入To」會更改信息,但不會更改文件屬性。
之前有沒有File.Tag像有一個File.SetCreationTime()。 ..你的意思是我應該能夠訪問它嗎? – Jake 2012-07-12 18:02:25
這裏是一個鏈接,你可以看看..但你將不得不將代碼轉換爲C#或者你可以使用VB.NET代碼,只需使用Microsoft.VisualBasic http://p2p.wrox放入你的頭文件。 com/excel-vba/35766-file-information.html – MethodMan 2012-07-12 18:05:08