2016-07-17 3 views
1

У меня была ситуация, когда я хочу получить имя pst на основе выбора, сделанного для элемента в проводнике Outlook. В основном у моего Outlook много почтовых ящиков. Мне нужно иметь имя pst элемента электронной почты, который я выбрал. До сих пор я пытался много итераций, но не повезло, как в основном я не нахожусь с VBA обратно землю и в VBA я его очень легко, как показано ниже:Как получить имя PST Outlook из выбранной почты VB.NET

oMailItem.Parent.Parent 

, и это дает мне идеальный результат. Однако в .NET я не вижу oMailItem.Parent.Parent, когда я положил точку после первого Parent, IntelliSense снова не предлагает свойство Parent. Я пробовал конвертировать, но не повезло, поскольку я очень новичок в VB.NET.

Просьба сообщить.

Спасибо, Рашид

ответ

0

Свойство Parent имеет тип Object, так что вы должны сначала привести его к Outlook.Folder как так. Имейте в виду, хотя, что преобразование не может быть возможным, и поэтому вы должны проверить, относится ли folder фактически к объекту и не Nothing

Dim folder As Outlook.Folder = TryCast(oMailItem.Parent, Outlook.Folder) 
If folder IsNot Nothing Then 
    folder.Parent ... 
End If 
+0

Спасибо за ваш ответ, дайте мне попробовать –

+0

Привет, я попробовал код и в состоянии бросить объект, но как бы я получить путь к папке, как я попробовал этот Dim oFolder Как Outlook.Folder oFolder = TryCast (oItem.Parent, Outlook.Folder) Если oFolder IsNot Nothing Then oFolder.Parent.ToString() End If –

+0

Мне нужно получить корневую папку из этой цепочки. Я прохожу через объект oFolder, и в Dynamic View я вижу, что он дает мне «My PS Name \ Inbox \ PersonalFolder» –

0

Вы должны использовать Store.FilePath. Чтобы получить родительский магазин, используйте MAPIFolder.Store. Чтобы получить родительскую папку, прочитайте свойство MailItem.Parent и отбросите его до MAPIFolder.