2012-12-01 98 views
0

我需要創建一個WCF方法,它接受zip文件的字節數組包含多個pdf文件,並從輸入字節創建Zip文件並將其保存在我的應用程序的任何文件夾中。從字節創建ZIp文件

我正在使用WCf應用程序。

任何一個可以幫助我...

感謝

+0

我不明白。您的WCF服務正在接收一系列已經構成zip文件的字節,並且您想知道如何將這些字節保存到磁盤?或者你是否希望將zip文件的內容提取到磁盤?需要更多的澄清。 – Chris

+0

我需要從輸入字節創建Zip文件,並將其保存在磁盤上並將其解壓縮。 –

+0

方法接受byes。我需要轉換成zip文件並將其保存在磁盤上並將其解壓縮 –

回答

1

我建議如下:

  1. 通行證文件作爲Stream到WCF方法,而不是作爲一個字節數組。詳情請參閱Large Data and Streaming
  2. 您可能不需要在光盤上保存unziped文件來提取它。你可以看看你使用的解壓縮庫的API嗎?可能它可以直接從Stream解壓縮數據。例如。 SharpZipLib可以。
0

你真的想在這裏做什麼?你寫你想從服務中獲取Zip文件並將其保存到磁盤(基本上:通過wcf服務獲取文件)。可能你想要的是zipfile的內容呢?

爲此,您需要一個庫來處理zip文件,我建議DotNetZip。據我所知,DotNetZip可以從File和Stream以及字節數組中加載。如果沒有,您可以從字節數組創建一個流並將其傳遞到zip庫中。

Stream stream = new MemoryStream(byteArray); 

對於提取和其他操作,請閱讀您選擇的任何zip庫的手冊。

如果你真的只是想從你的字節數組保存文件:

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

無論哪種方式,作爲@Alexander Stepaniuk建議,你可能會更好使用你的服務流,而不是傳遞字節數組,閱讀他的文章和鏈接。