如何将 Outlook 文件夹区分为仅 return 可见文件夹?

How to differentiate Outlook folders to return visible folders only?

我这样提取 Outlook(365、Exchange 服务器)文件夹:

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

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

如何删除这些文件夹?

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

编辑(基于 Dmitry 的回答):

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

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

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