В приложении WinForms доступ к корневой папке Microsoft Outlook осуществляется для получения подпапок, специфичных для профиля (с файлом 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 с именем файла PST по адресу:
MAPIFolder rootFolder = nsOutlook.Stores[sSelectedPSTFileName].GetRootFolder();
Исключение: попытка выполнения операции не удалась. Объект не может быть найден.
Я загрузил этот файл PST в MS Outlook, он работает нормально. Но когда я обращаюсь к этому файлу из кода, он показывает исключение.
Есть ли способ определить, поврежден ли файл PST? Помощь в этом отношении будет оценена.