在Windows应用程序中访问时出现PST文件问题

时间:2014-01-15 06:37:41

标签: c# winforms outlook office-interop

在WinForms应用程序中,访问Microsoft Outlook根文件夹以获取特定于配置文件(w.r.t PST文件)的子文件夹。 下面是用于从outlook命名空间获取根文件夹的代码。

Microsoft.Office.Interop.Outlook.Application appOutlook = new Microsoft.Office.Interop.Outlook.Application();
appOutlook.Session.AddStore(sPSTFilePath);
Microsoft.Office.Interop.Outlook.NameSpace nsOutlook = appOutlook.GetNamespace("MAPI");
string sSelectedPSTFileName = Path.GetFileNameWithoutExtension(sPSTFilePath);
MAPIFolder rootFolder = nsOutlook.Stores[sSelectedPSTFileName].GetRootFolder();

它运行正常,但是在某些PST文件上,当它从outlook命名空间w.r.t PST文件名获取根文件夹时会引发异常:

MAPIFolder rootFolder = nsOutlook.Stores[sSelectedPSTFileName].GetRootFolder();

异常:尝试的操作失败。无法找到对象。

我已经在MS Outlook中加载了该PST文件,它运行正常。但是,当我从代码中访问该文件时,它显示异常。

有没有办法确定PST文件是否已损坏? 在这方面的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你可以这样做

OutLook.MAPIFolder outlook_Folder = null; Microsoft.Office.Interop.Outlook.NameSpace nsOutlook = appOutlook.GetNamespace(“MAPI”); outlook_Folder = nsOutlook.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox).Parent; Console.WriteLine(“根文件夹:”+ outlook_Folder.Name);