在Outlook 2010中删除已删除的项目

时间:2012-09-07 14:05:36

标签: c# outlook-addin outlook-2010

根据文档,当我从地址簿中删除联系人时,会将其移至“已删除”文件夹。假设有一个懒惰的程序员(当然不是你和我),他们不想将代码编写到更新每个Outlook启动时的联系人,而只是删除所有来自通讯录的联系人然后重新填充它(假设没有那么多的用户填充,并且每天都会启动Outlook很多次),所以性能不是问题但是数量越来越大已删除文件夹中的条目是。

Outlook是否能够整齐地管理删除存储,还是我需要,hrmp ..., 懒惰的程序员需要担心吗?

所述程序员可能会使用看起来就像这样的代码。

Outlook.Folder contacts = 
  this.Application.Session.GetDefaultFolder(
    Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder;
Outlook.Folder addressBook = contacts.Folders["lazy"] as Outlook.Folder;

while (addressBook.Items.Count > 0)
  addressBook.Items.OfType<Outlook.ContactItem>().Last().Delete();

如果他需要担心,他可能想删除删除文件夹中的删除,当然,那些被他的软件删除的删除。是否有一种流畅的方式来删除 - 删除联系人?

1 个答案:

答案 0 :(得分:1)

我只是每次都重新创建Folder并避免逐个ContactItem慢的删除。当您删除Folder时,它不会在已删除的项目中保留副本。一个Folder删除&amp;保存将比大量项目删除更快。

Outlook.Folders contactFolders = contacts.Folders;
if (contactFolders.Cast<Outlook.Folder>()
  .Where(c => c.Name == "My AB").Count() > 0)
    contactFolders["My AB"].Delete();

只需关注address book creation steps from the previous SO post