使用C#从NSF文件中读取Lotus Notes文档和项目

时间:2010-11-24 13:47:29

标签: c# .net lotus-notes

如何从 NSF 收件箱中使用C#获取 Lotus Notes 收件箱中的所有Lotus Notes文档(例如邮件及其内容)以及的使用情况interop.domino.dll

我想使用以下代码段:

Domino.NotesSession m_session = null;

...

this.m_session = new Domino.NotesSession();
this.m_session.Initialize("");

Domino.NotesDatabase db = null;
this.m_session.GetDatabase("", "C:\test.nsf", false);

Domino.NotesDocumentCollection col = db.AllDocuments;

for (int i = 0; i < col.Count; ++i)
{
         Domino.NotesDocument doc = col.GetNthDocument(i);

         ...
}

如何访问每个文档的项目?例如,我想要主题,谁,日期,时间......

如何通过文档的所有项目进行迭代?

如何提取附件?

NotesSQL ODBC驱动程序是否是COM API的良好替代品?

1 个答案:

答案 0 :(得分:5)

这应该有效。 Lotusscript中的GetItemValue方法返回一个值数组,但通常你只需要第一个索引处的值。我不确定它是否与COM的工作原理相同,但调试器可以帮助你解决这个问题。

此外,如果您正在处理大量文档,使用GetFirstDocument / GetNextDocument方法迭代要比使用GetNthDocument方法快得多。

Domino.NotesDocument doc = col.GetFirstDocument(doc);
while (doc != null) {

     string subject = doc.GetItemValue("subject")[0];
     string who = doc.GetItemValue("sendto")[0];

     Domino.NotesDocument doc = col.GetNextDocument(doc);
}