首页 文章

解压缩内存流中的文件(odt或docx)

提问于
浏览
0

我一直在用Asp.Net开发一个Web应用程序,我正在使用SharpZipLib来处理odt文件(来自Open Office)和未来的docx文件(用于ms office) . 我需要打开一个odt文件(比如一个zip文件)更改其中的xml文件,再次压缩并将其发送给我的客户端 .

我可以在文件系统中执行此操作,但它会暂时在我的磁盘中获得一个空间,我们不希望它 . 我想在内存中(使用MemoryStream类)执行此操作,但我不知道如何使用SharpZipLib解压缩内存流中的文件夹/文件,更改并再次使用它进行压缩 . 有没有关于如何做到这一点的样本?

谢谢

1 回答

  • 0

    你可以使用类似的东西

    Stream inputStream = //... File.OpenRead(...);
    
      //for read file
     ZipInputStream zipInputStream = new ZipInputStream(inputStream));
    
     //for output 
     MemoryStream memoryStream  = new MemoryStream();
    
    
    
    using ( ZipOutputStream zipStream = new ZipOutputStream(memoryStream))
    {
    
    
    
    
              ZipEntry entry = new ZipEntry("...");
              //...
    
              zipStream.PutNextEntry(entry);
              zipStream.Write(data, 0, data.Length);
              //...
    
    
              zipStream.Finish();
              zipStream.Close();
    
    }
    

    Edit ::

    您通常需要解压缩文件,获取ZipEntry,更改并使用MemoryStream在ZipOutputStream中写入 . 使用这篇文章http://www.codeproject.com/KB/cs/Zip_UnZip.aspx

相关问题