2008年4月2日 星期三

C# SharpZip 應用

http://richielin-programer.blogspot.com/2008/04/c-sharpzip.html

C# 程式要處理壓縮檔,大致上都會選擇好用的 SharpZip
SharpZip 支援 ZIP, GZip, Tar, BZip2 格式
其文件說明豐富, API 還算簡捷
雖然本身提供了 FastZip 簡單易用,但是只有以下功能
1. 壓縮某個資料夾成為 ZIP 檔案
2. 解縮某個 ZIP 檔案到指定資料夾

如果想要對不同資料夾內許多檔案做壓縮處理,或是將 ZIP 內某個檔案取出
甚至只是想壓縮成 System.IO.Stream 資料流而不想儲存成檔案
FastZip 都無法處理
必須以 ZipOutputStream 類別來處理上述工作,建立整個機制卻不是那麼快

天秤寫了函式將 ZipOutputStream 類別包起來
提供單一函式呼叫就可以來處理上述的動作

函式使用如下
提供二個壓縮函式,六個解壓縮函式
使用方法

下載原始碼: FileEx.cs
下載 SharpZip 式庫及 FileEx.cs 檔案
SharpZip 加入參考,並加上 FileEx.cs 程式碼即可使用,以下為簡單的壓縮解壓縮範例

3 意見:

匿名 提到...

--------使用後出現以下錯誤---------
編譯器錯誤訊息: CS0234: 命名空間 'System' 中沒有型別或命名空間名稱 'Linq' (您是否遺漏了組件參考?)

using System.Linq;

搖擺天秤 提到...

請將 using System.Linq; 這行拿掉
因為天秤是用 Visual Sutdio 2008 和 .NET Framework 3.5
如果是 Visual Studio 2005 之前版本就不可以有 Linq 這個 namespace 了

鐵人 提到...

我也是用VS2008開發
但出現
編譯器錯誤訊息: CS0234: 命名空間 'System' 中沒有型別或命名空間名稱 'Linq' (您是否遺漏了組件參考?)


行 5: using System.Linq;
行 12: using System.Xml.Linq;

把行5跟行12註解掉就正常了
請問是IIS的ASP.NET版本不對的關係嗎?
但我最多只到2.0可以選,請問這樣正確嗎?
示意圖
謝謝