将SPFile合并到现有SPFile的方法

时间:2013-06-14 21:11:20

标签: file sharepoint merge

我的问题是我将1..n文件合并到一个文件中。我在Sharepoint服务器上有一个目标SPFile。我已经编写了一个基于OpenXML网站的方法,它运行时没有错误,但在我查看它时结果是空白。

这是方法

    private void InsertSPFileInto(SPFile target, SPFile source, int index)
    {
        Stream targetStream = target.OpenBinaryStream();
        using (WordprocessingDocument myDoc = WordprocessingDocument.Open(targetStream, true))
        {
            string altChunkId = "AltChunkId" + index.ToString();
            MainDocumentPart mainPart = myDoc.MainDocumentPart;
            AlternativeFormatImportPart chunk =
                mainPart.AddAlternativeFormatImportPart(
                    AlternativeFormatImportPartType.WordprocessingML, 
                    altChunkId);
            Stream sourceStream = source.OpenBinaryStream();
            chunk.FeedData(sourceStream);
            AltChunk altChunk = new AltChunk();
            altChunk.Id = altChunkId;
            mainPart.Document
                .Body
                .InsertAfter(altChunk,mainPart.Document.Body.LastChild);
            mainPart.Document.Save();
        }
    }    

它再次只返回一个空白文档,但它也不会破坏它。

感谢。

蒂姆丹尼尔斯

1 个答案:

答案 0 :(得分:0)

在玩完之后我发现了我需要在“maindocument.Documents.Save()”行后面的方法中添加以下三行的问题

targetDoc.Close();
targetStream.Flush();
target.SaveBinary(targetStream);