如何在Lotus Notes中使用.NET访问用户创建的文件夹的内容?

时间:2009-09-11 13:33:11

标签: c# lotus-notes

我正在获取所有视图的内容(文件夹)。像Inbox,Calendar,ToDo e.t.c。

如标题中所述,我想访问创建了我的用户的文件夹的内容。 例如“Folder1”和子文件夹“ABC”

我可以这样做:

 NotesView folder = _notesDatabase.GetView("(Folder1)");
 NotesDocument docFolder = folder.GetFirstDocument();

对于子文件夹:NotesView folder = _notesDatabase.GetView("(Folder1/ABC)");

但在这里我需要指定文件夹名称。事先无法知道。 所以我不能硬编码。

有没有办法只获取用户创建的文件夹和子文件夹列表?

2 个答案:

答案 0 :(得分:1)

您可以使用NotesDatabase Views属性获取视图集合

_notesDatabase.Views

如果遍历该集合,则可以检查每个视图的IsPrivate属性,以查看它是否是用户创建的私有视图。在Lotusscript中它看起来像这样

Dim allViews as Variant
Set allViews = _notesDatabase.Views
ForAll myview In allViews
    If myview.IsPrivate Then
        'Do something
    End If
End ForAll

答案 1 :(得分:1)

要迭代邮箱中的所有文件夹,请使用NotesDatabase.ViewsisFolder属性。然后你可以明确地排除($ Inbox),($ Junkmail)等。或使用启发式名称以“(”为系统文件夹:

)开头的文件夹
Dim session As New notessession

Forall fa_view In session.currentdatabase.views
    If fa_view.isFolder() Then
        If Left$(fa_view.name,1) <> "(" Then    Print fa_view.name
    End If
End Forall

Ken Pespisas使用isPrivate的建议更好,除非允许用户创建共享文件夹,否则它将起作用。我不确定这是否是默认的Notes访问权限。