在.NET應用程序中使用7-Zip的壓縮/解壓縮功能
作者 Abel Avram譯者 趙劼 發佈於 2008年6月30日 上午3時48分
開發人員Eugene Sichkar在Code Project中發佈了一個使用7-Zip壓縮功能的.NET/C#項目。7-Zip是一個用於壓縮/解壓多種文件格式的開源項目。7-Zip是一個開源的壓縮工具,據7-Zip網站描述,它支持以下類型:
- 同時支持壓縮/解壓縮的類型:7z, ZIP, GZIP, BZIP2 and TAR
- 只支持解壓縮的類型:RAR, CAB, ISO, ARJ, LZH, CHM, MSI, WIM, Z, CPIO, RPM, DEB and NSIS
7-Zip目前可以在從Windows 98到Vista的各種版本Windows桌面版本中運行,它向Linux/Unix的移植工作也正在進行中。7-Zip是一個自由軟件,使用GNU LGPL協議,其中的UnRAR模塊則有一些其他約束。
開發人員Eugene Sichkar創建了一系列7-Zip動態鏈接庫的C#接口,這樣其他人就可以在.NET應用程序中使用7-Zip的壓縮/解壓縮功能了。據Eugene稱,該項目實現了以下接口:
IProgress
- 基本進度的回調IArchiveOpenCallback
- 打開壓縮包的回調ICryptoGetTextPassword
- 爲壓縮提示密碼的回調IArchiveExtractCallback
- 對壓縮包進行解壓的回調IArchiveOpenVolumeCallback
- 打開額外壓縮卷的回調ISequentialInStream
- 基本的只讀數據流接口ISequentialOutStream
- 基本的只寫數據流的接口IInStream
- 可以隨機讀取的輸入數據流接口IOutStream
- 輸出數據流接口IInArchive
- 主要壓縮接口
開發人員使用這個.NET接口時是直接調用7-Zip的功能,而不是通過控制檯或控制檯的封裝來對7-Zip進行訪問。這個接口使用了公共開發與分發協議(CDDL),只有Code Project註冊用戶才能下載其C#源代碼。
查看英文原文:Using 7-Zip's Compressing/Decompressing Functionality from a .NET Application