【问题标题】:Create ZIp files from the bytes从字节创建 ZIP 文件
【发布时间】:2012-12-01 14:48:38
【问题描述】:

我需要创建一个 WCF 方法,它接受包含多个 pdf 文件的 zip 文件的字节数组,并从输入字节创建 Zip 文件并将其保存在我的应用程序的任何文件夹中。

我正在使用 WCf 应用程序。

谁能帮帮我...

谢谢

【问题讨论】:

  • 我不明白。您的 WCF 服务正在接收一系列已经构成 zip 文件的字节,您想知道如何将这些字节保存到磁盘?或者您希望将 zip 文件的内容提取到磁盘?需要更多说明。
  • 我需要从输入字节创建 Zip 文件并将其保存在磁盘上并解压缩
  • 方法接受再见。我需要转换成 zip 文件并将其保存在磁盘上并解压
  • 查看此处将字节数组写入磁盘stackoverflow.com/questions/381508/… 此处用于提取stackoverflow.com/questions/836736/…

标签: asp.net wcf service


【解决方案1】:

我建议如下:

  1. 将文件作为Stream 传递给WCF 方法,而不是作为字节数组。详情请见Large Data and Streaming
  2. 您可能不需要将解压缩的文件保存在光盘上即可解压。可以看看你使用的解压库的API吗?可能它可以直接从Stream 解压数据。例如。 SharpZipLib可以。

【讨论】:

    【解决方案2】:

    你真的想在这里做什么?你写你想从服务中获取一个 Zip 文件并将其保存到磁盘(基本上:通过 wcf 服务获取一个文件)。可能您想要的是 zipfile 的内容?

    为此,您需要一个库来处理 zip 文件,我建议 DotNetZip。据我所知,DotNetZip 可以从文件和流以及字节数组中加载。如果没有,您可以从字节数组创建一个流并将其传递到 zip 库中。

    Stream stream = new MemoryStream(byteArray);
    

    对于提取和其他操作,请阅读您选择的任何 zip 库的手册。

    您是否真的只想从字节数组中保存一个文件:

    File.WriteAllBytes(string path, byte[] byteArray);
    

    无论哪种方式,正如@Alexander Stepaniuk 建议的那样,您最好在服务中使用流,而不是传递字节数组,阅读他的帖子和链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 2018-02-16
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      相关资源
      最近更新 更多