winforms PST文件的问题,而在Windows应用程序中访问

vpfxa7rd  于 2023-08-07  发布在  Windows
关注(0)|答案(2)|浏览(123)

在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文件是否已损坏?在这方面的帮助将不胜感激。

brgchamk

brgchamk1#

你可以这样试试

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);

字符串

lrpiutwd

lrpiutwd2#

有几种方法可以识别PST文件是否损坏。
1.检查文件大小-由于数据差异问题,损坏的PST文件大小将与原始文件大小不同。
1.如果您无法在Outlook中打开表示“数据文件已损坏”的文件。
1.运行scanPST或任何第三方工具来扫描您的PST文件,它会显示它是否已损坏。
1.在访问代码中的PST文件的根文件夹时,如果出现错误,这意味着您的PST文件可能已损坏。

相关问题