首页 > 解决方案 > 如何区分 Outlook 文件夹以仅返回可见文件夹?

问题描述

我像这样拉出 Outlook(365,Exchange 服务器)文件夹:

 Dim otkApp As Outlook.Application = New Outlook.Application
 Dim otkNameSpace As Outlook.NameSpace = otkApp.GetNamespace("MAPI")
 Dim folders = otkNameSpace.Folders

这让我获得了几个额外的文件夹以及我在 Outlook 应用程序中看到的文件夹。例如,我收到“同步问题”、“快速步骤设置”和“对话操作设置”。

如何删除这些文件夹?

我没有看到任何与“收件箱”文件夹中的属性不同的属性。我用 check 只删除了其中的一些.DefaultMessageClass = "IPM.Note"
调试

编辑(基于德米特里的回答):

Dim prop As Boolean = False

Try
    prop = subfolder.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x10F4000B")
Catch ex As System.Exception
    prop = False
End Try

If prop Or Not subfolder.DefaultMessageClass = "IPM.Note" Then
    Continue For
End If

这消除了大多数文件夹,但仍然存在“同步问题”。

标签: .netoutlook

解决方案


您可以跳过具有PR_ATTR_HIDDENMAPI 属性 == true 的文件夹。"http://schemas.microsoft.com/mapi/proptag/0x10F4000B"可以使用 访问属性(DASL 名称) MAPIFolder.PropertyAccessor.GetProperty您可以在OutlookSpy中看到该属性(单击 IMAPIFolder 按钮)。


推荐阅读