无法删除Outlook 2010中的通讯簿

时间:2012-09-10 10:20:25

标签: c# outlook outlook-addin

我正在运行下面的代码,并且我 的印象是它完成了它应该做的事情。但是,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执行只会导致隐藏来自用户界面的地址簿。我希望愚蠢的事情永远消失!

如何真正删除包含地址簿的文件夹?

1 个答案:

答案 0 :(得分:1)

我犯了这样的错误但是有一个不同的实体,尽管仍然在Outlook中。我得到的建议只是忽略了这个问题。 Deleted目录中充满了具有相同名称的项目,并且用户在发现它时就被追踪了。

我的解决方案,主要是为了让客户冷静下来,就是重命名我知道最终用户通常会检查的字段,并添加“安全地存储Outlook维护”文本。然后用户很高兴。

尽管我的知识很突出,但对你的问题的简短回答是“抱歉,你不能”。

长篇回答让我们可以选择删除帐户并创建一个新帐户,但如果所有内容再次重新出现,我不会感到惊讶。 :)