2012-02-02 64 views
5

我正在尋找一些可以幫助我理解如何在C#中壓縮文件的例子,例如,如果我有20MB zip壓縮文件,我想將文件拆分爲4MB的5MB每個在C#中部分壓縮文件

我已經通過Stack overflow question,然後我甚至看了DotNetZip圖書館的文件,但我找不到任何這樣的例子。

有人可能會建議嗎?謝謝,

我在找什麼時,我有這4個文件,我可以將它們提取到原始文件。因此,每個單獨的部分可能不是一個合適的zip,但所有4個部分應該適當地提取

+4

你打算怎麼處理另一個10MB的zip? – 2012-02-02 16:22:11

+0

您是否需要每個片段都是有效的zip文件,或者您是否有興趣在稍後重新組合文件之前減少單個文件的大小? – 2012-02-02 16:22:25

+0

正確的壓縮或只是壓縮? – 2012-02-02 16:40:44

回答

1

您可以試試ICSharpCode來壓縮文件。一旦文件是zip文件,您可以使用FileStream將文件保存爲小塊。我在我的一個項目中完成了這項工作。如果您需要任何幫助,請告訴我。

+0

所以如果我可以通過讀取它通過二進制流拆分zip文件,那麼我可以使用任何zip文件庫...對嗎?然後在文件流中分割成部分 – 2012-02-02 16:57:29

+0

它將像'10Mb.txt' =>'10Mb.zip'(使用Zip庫)=>將文件分割爲'5MbPart1.zip'和'5MbPart2.zip '(使用自定義代碼,使用'FileStream')。做相反的事情來獲得原始文件。 – 2012-02-02 17:04:10

2

您是否意味着ZIP壓縮後將ZIP文件拆分爲多個文件,這意味着您必須重新組合兩個部分才能生成有效壓縮?

您可以使用7Zip來完成此操作。以下是使用用戶界面進行操作的說明。他們還提供an API以使任務自動化。

http://www.linglom.com/2008/10/12/how-to-split-a-large-file-using-7-zip/

你也可以只讀取文件的二進制數據,然後寫它使用自己的慣例例如到單獨的文件my.zip.part1of3,my.zip.part2of3,my.zip.part3of3等。準備就緒後,重新組合部分並解壓縮。如果你這樣做,重新組裝零件的人需要一個自定義的工具。