从字节创建ZIp文件

时间:2012-12-01 14:48:38

标签: asp.net wcf service

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

我正在使用WCf应用程序。

任何人都可以帮助我......

谢谢

2 个答案:

答案 0 :(得分:1)

我建议如下:

  1. 将文件作为Stream传递给WCF方法而不是字节数组。有关详细信息,请参阅Large Data and Streaming
  2. 您可能不需要在光盘上保存未经压缩的文件来提取它。你能看一下你使用的解压缩库的API吗?可能它可以直接从Stream解压缩数据。例如。 SharpZipLib可以。

答案 1 :(得分:0)

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

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

Stream stream = new MemoryStream(byteArray);

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

你真的只想保存字节数组中的文件:

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

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