Lotus Notes - 以编程方式保存损坏的附件 - NotesEmbeddedObject

时间:2011-06-24 17:02:24

标签: c# .net lotus-notes lotus lotus-domino

我有NSF,其中包含带有两个附件的电子邮件。其中一个附件已损坏,如果我尝试保存它,Notes会显示此消息The attachment may be corrupted. Would you like to continue with the available data?

如果单击“是”,Notes会将损坏的附件保存到我指定的目录中。这很好。

我想在C#中使用对象模型做同样的事情。如果我运行NotesEmbeddedObject.ExtractFile(),则会收到以下异常消息:Notes error: Encoded Data Checksum Mismatch - Attachment may be corrupted。没有版本的文件写入我指定的目录。

我希望代码将损坏的版本写入目录。我怎么能这样做?

现有代码:

//BEGIN Extract Attachment
//nItem is a NotesItem
if (nItem.type == IT_TYPE.ATTACHMENT)
{
    try
    {
        string pAttachment = ((object[])nItem.Values)[0].ToString();
        NotesDocument NDoc =  NotesConnectionDatabase.AllDocuments.GetNthDocument(i);
        NotesEmbeddedObject Neo = NDoc.GetAttachment(pAttachment);
        NDoc.GetAttachment(pAttachment).ExtractFile(@"D:\projects\xxx\Attach\" + pAttachment);
    }
    catch (Exception e)
    {
        string eMessage = e.Message;
        Console.WriteLine(eMessage);
    }
}
//END Extract Attachment

1 个答案:

答案 0 :(得分:3)

我不敢。

NotesEmbeddedObject.ExtractFile方法尝试提取附件,但是校验和不匹配,一旦出现该错误,就会抛出异常。

我不知道任何其他处理附件的Notes后端类(可能是别人做的......)