在.NET 应用程序中使用 7-Zip 的压缩 / 解压缩功能

  • Abel Avram
  • 赵劼

2008 年 6 月 30 日

话题:.NETC#语言 & 开发

开发人员 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
.NETC#语言 & 开发