我正在运行下面的代码,我的印象是它做了它应该做的事情。但是,Outlook 似乎从不删除通讯簿文件夹。它只是设置.ShowAsOutlookAB
为假。这意味着当我在下次启动 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
都会执行,但结果只是从用户界面隐藏地址簿。我希望愚蠢的事情永远消失!
我怎样才能真正删除带有地址簿的文件夹?