Как определить флаг «Только этот компьютер» в именах папок Outlook в VSTO addin? - PullRequest
0 голосов
/ 30 августа 2018

Начиная с Outlook 2013 и более поздних версий, Outlook может иногда (в случае файлов .OST) добавлять суффикс «(Только этот компьютер)» к именам папок. В других случаях (файлы .PST) этого не происходит. Таким образом, в зависимости от конкретных обстоятельств имя папки может быть «Некоторая папка» или «Некоторая папка (только этот компьютер)» или «Некоторая папка (кто знает, что еще)» для локализованных версий Outlook.

Есть ли способ получить имя папки без этого суффикса (чтобы я всегда получал, скажем, «Некоторая папка», независимо от того, присутствует этот суффикс в имени папки или нет? увидеть любое свойство в объекте Outlook.Folder, которое вернуло бы мне это короткое имя.

Я могу придумать обходной путь, например, получить имя папки контактов по умолчанию, проверить, заканчивается ли оно на «(что-то)», а затем удалить «(что-то)» из имен папок, но для меня это не выглядит элегантным решением.

Другим подходом может быть создание временной папки и проверка, отличается ли ее имя от предоставленного мною. Если они разные, то эта разница является суффиксом. Однако создание / удаление папки только для этого тоже не выглядит элегантно.

В инструменте MFCMapi я также не могу найти "Контакты" в свойствах MAPI папки с именем "Контакты (только для этого компьютера)", поэтому это не просто ограничение Outlook OOM.

Это правда, что нет способа получить имя папки без этого суффикса программно, и я должен полагаться только на мои (уродливые) обходные пути?

1 Ответ

0 голосов
/ 30 августа 2018

Не полагайтесь на имена папок. Помимо наличия суффикса "(Этот компьютер только)" для хранилищ IMAP4, имена могут быть локализованы.

Всегда используйте Namespace.GetDefaultFolder и Store.GetDefaultFolder.

...