1

根据文档,当我从通讯录中删除联系人时,它会被移动到“已删除”文件夹。假设有一个懒惰的程序员(当然不是你也不是我)不想编写代码来更新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();

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

4

1 回答 1

1

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

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

只需按照上一个 SO 帖子中的地址簿创建步骤即可

于 2012-09-07T14:21:38.050 回答