在WinForms应用程序中,微软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();
异常。试图操作失败。一个对象无法找到。
我已经加载的PST文件在MS Outlook中,它是工作正常。但是,当我访问该文件从代码中显示异常。
是否有任何方法来识别PST文件损坏或不?帮助在这方面将是感激。
你可以尝试以这种方式
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("Root Folder: " + outlook_Folder.Name);