【发布时间】:2012-09-17 00:11:44
【问题描述】:
我正在运行下面的代码,并且我曾认为它完成了它应该做的事情。但是,Outlook 似乎从不删除通讯簿文件夹。它只是将 .ShowAsOutlookAB 设置为 false。这意味着当我在下次启动 Outlook 时检查该文件夹是否存在时,该文件夹就在那里(虽然我没有意识到,因为它没有显示在 UI 中)。
Outlook.MAPIFolder defaultContactsFolder =
this.Application.GetNamespace("MAPI").GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderContacts);
defaultContactsFolder.Folders["My AB"].Delete();
我还尝试了以下代码,以确保它与我选择的库无关。
Outlook.Folder defaultContactsFolder =
this.Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder;
Outlook.Folders contactFolders = defaultContactsFolder.Folders;
if (contactFolders.Cast<Outlook.Folder>().Where(
element => element.Name == _CrmkAddressBookName).Count() > 0)
contactFolders["My AB"].Delete();
在每种情况下,Delete 都会执行但只会导致用户界面隐藏通讯录。我希望这愚蠢的东西永远消失!
我如何真正删除带有地址簿的文件夹?
【问题讨论】:
-
我不确定完全删除地址簿是否可能,因为它是通过构造内置的。
-
我是否是创建通讯录的人有关系吗?它不是任何默认值。我正在向默认联系人文件夹添加一个子文件夹,然后将其标志
ShowAsOutlookAB设置为true。肯定有办法摆脱这种东西?!如果我碰巧运行了一个循环并创建了一个名为“My AB xxx”的海量通讯录并且需要摆脱它们怎么办? -
据我所知,您只能创建文件夹,不能创建地址簿,文件夹确实可以删除,但我怀疑地址簿部分可以删除。看起来像是微软支持的问题。
-
我知道你前进的方向。这也是我的印象。这就是为什么我在联系人中创建一个子文件夹,然后手动将其设置为可在 Outlook 中显示为通讯簿。能够创建东西但不能删除它们感觉完全错误......
-
是的,只是平均的 ms 产品 :)
标签: c# outlook outlook-addin