从ZipArchiveEntry创建SPListItem而不使用FileStream

时间:2014-04-11 18:35:25

标签: c# memorystream

我是一名新的.Net开发人员,我在文档库中开发上传的Zip文件时遇到了问题。

我需要提取上传的Zip文件的内容,以对其中包含的文件执行某些操作。

所以我选择使用ZipArchive Stream来处理我的问题,我可以轻松地从我的DocLib中检索我的SPFile并从中创建流。

但是我无法从ZipArchiveEntry创建嵌入文件,我尝试了以下代码(不是复制/过去,我不在我的开发机器上)

foreach(SPFile myFile in mySPFolder.Files)
{
    ZipArchive myZip = new ZipArchive(myFile.OpenBinaryStream());

    foreach(ZipArchiveEntry subZip in ZipArchive.Entries)
    {
        SPFile newFile = list.RootFolder.Add("myxml.xml",subZip.Open())
    }
}

我在创建newFile时遇到了一个问题,因为它给我一个系统I / O错误,根据我的理解,这可能是由于该流返回的方法ZipArchiveEntry.Open()是一个deflatestream。

我看到文件创建可以通过MemoryStream完成,但是我无法理解如何将deflatestream转换为内存流。

0 个答案:

没有答案