c# 解压7zip

最近项目需要做一个自动更新功能,即将更新压缩包下载过来,进行解压替换。这时需要进行解压,据说C# 4.5以上已经自带解压的库了,因为是老项目是4.0版本的,需要借助第三方库才能完成。因为压缩格式自己定,那当然使用开源的7zip格式。

7zip官网  https://www.7-zip.org/

使用用 SevenZipSharp 

markhor 创建了SevenZipSharp 项目,SevenZipSharp 是开源的,里面实现了自解压和压缩所有7-ZIP支持的格式.它改进了7-Zip动态链接库的C#接口的一些方法.

常用压缩/解压缩示例(引自SevenZipSharp示例文件):

链接:https://pan.baidu.com/s/10dpjXkrguXUzrGgYuPHfpA
提取码:eb5k
7z.dll应该是安装了7zip之后生成的,发现360压缩也是使用的7z.dll. 发现SevenZipSharp本身不能解压,而是通过7zip官网上的SDK操作7z.dll来完成。7z.dll不是c#的动态库。

使用:下载上面的源码并使用VS2010打开,生成 SevenZipSharp.dll

1.创建项目

  将7z.dll放到执行目录

  引用SevenZipSharp.dll

2. 开始使用

解压缩文件

using (SevenZipExtractor tmp = new SevenZipExtractor(@"d:\Temp\7z465_extra.7z")) 

{                

     for (int i = 0; i < tmp.ArchiveFileData.Count; i++) 

     { 

        tmp.ExtractFiles(@"d:\temp\!Пусто\", tmp.ArchiveFileData[i].Index); 

     } 

     //tmp.ExtractFiles(@"d:\temp\!Пусто\", 1, 3, 5); 

}

分卷压缩

SevenZipExtractor.SetLibraryPath(@"d:\Work\Misc\7zip\9.04\CPP\7zip\Bundles\Format7zF\7z.dll"); 

using (SevenZipExtractor tmp = new SevenZipExtractor(@"d:\Temp\SevenZip.7z.001")) 

{                 

    tmp.ExtractArchive(@"d:\Temp\!Пусто"); 

}

 

 压缩文件

SevenZipCompressor tmp = new SevenZipCompressor();             

tmp.CompressFiles(@"d:\Temp\arch.7z", @"d:\Temp\log.txt"); 

tmp.CompressDirectory(@"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\1033", @"D:\Temp\arch.7z");

 

 

压缩ZIP文件

 

SevenZipCompressor tmp = new SevenZipCompressor(); 

tmp.ArchiveFormat = OutArchiveFormat.Zip; 

tmp.CompressFiles(@"d:\Temp\arch.zip", @"d:\Temp\gpl.txt", @"d:\Temp\ru_office.txt");

参考 https://www.cnblogs.com/jxnclyk/archive/2010/04/03/1703844.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值