e){entryTotal=e.Item.Size;info_builde1="提取文件:"e.Item.Key";";}privatevoidarchive_FilePartExtractionBegin(objectsender,FilePartExtractionBeginEventArgse){partTotal=e.Size;info_builde2="分卷:"e.Name";";}privatevoidarchive_CompressedBytesRead(objectsender,CompressedBytesReadEventArgse){stringpercentage=entryTotal.HasValue?CreatePercentage(e.CompressedBytesRead,entryTotal.Value).ToString():"Unknown";info_builde=info_builde1info_builde2"字节:"e.CompressedBytesRead";百分比:"percentage"%";this.CrossThreadCalls(()=>{compress_Info.Text=info_builde;progress[1].Value=int.Parse(percentage)>100||int.Parse(percentage)<0?100:int.Parse(percentage);if(volumes<2)progress[0].Value=progress[1].Value;Application.DoEvents();});}privateintCreatePercentage(longn,longd){return(int)(((double)n/(double)d)*100);}-IMDN开发者社群-imdn.cn"> e){entryTotal=e.Item.Size;info_builde1="提取文件:"e.Item.Key";";}privatevoidarchive_FilePartExtractionBegin(objectsender,FilePartExtractionBeginEventArgse){partTotal=e.Size;info_builde2="分卷:"e.Name";";}privatevoidarchive_CompressedBytesRead(objectsender,CompressedBytesReadEventArgse){stringpercentage=entryTotal.HasValue?CreatePercentage(e.CompressedBytesRead,entryTotal.Value).ToString():"Unknown";info_builde=info_builde1info_builde2"字节:"e.CompressedBytesRead";百分比:"percentage"%";this.CrossThreadCalls(()=>{compress_Info.Text=info_builde;progress[1].Value=int.Parse(percentage)>100||int.Parse(percentage)<0?100:int.Parse(percentage);if(volumes<2)progress[0].Value=progress[1].Value;Application.DoEvents();});}privateintCreatePercentage(longn,longd){return(int)(((double)n/(double)d)*100);} - IMDN开发者社群-imdn.cn">
登录
首页 » C# » 解压缩文件示例(rar、zip、7zip、Gzip、tar...等)

解压缩文件示例(rar、zip、7zip、Gzip、tar...等)

于 2019-07-21 发布
0 288
下载积分: 1 下载次数: 1

代码说明:

本程序是基于 sharpcompress-master 设计的演示程序。开原地址:https://github.com/adamhathcock/sharpcompress。1. 程序主要展示了压缩文件的解压缩,支持的文件类型有:rar、zip、7zip、Gzip、tar......等压缩格式,展示了密码解压、分卷解压、解压进度等功能。2. 不支持“带密码的分卷压缩文件”的解压;无密码分卷压缩、单个带密码文件正常解压。3. 此程序在设计中,对组件源代码进行了修改,与原组件代码对照查看。4、sharpcompress-master组件功能繁多,比如,文件压缩为图片、压缩文件内文件添加删除、更名等等,对照现有的压缩软件,功能均具备,可在代码中查看使用。本示例只是展示了解压缩功能。此程序为识别全部压缩格式,未引用DLL,全部为cs文件,如有错误,自行对照修正。private void Uncompress(string archiveFile, string destinationPath, string password = null) { var archive = ArchiveFactory.Open(archiveFile, new ReaderOptions() { Password = password, LeaveStreamOpen = true }); volumes = archive.Entries.Count(); archive.EntryExtractionBegin = archive_EntryExtractionBegin; archive.FilePartExtractionBegin = archive_FilePartExtractionBegin; archive.CompressedBytesRead = archive_CompressedBytesRead; Task.Run(() => { long order = 0; foreach (var entry in archive.Entries) { if (!entry.IsDirectory) { entry.WriteToDirectory(destinationPath, new ExtractionOptions() { ExtractFullPath = true, Overwrite = true, }); } order ; this.CrossThreadCalls(() => { if (volumes > 1) { progress[0].Value = CreatePercentage(order, volumes); } }); } MessageBox.Show("解压缩任务完成 !"); }); } private void archive_EntryExtractionBegin(object sender, ArchiveExtractionEventArgs e) { entryTotal = e.Item.Size; info_builde1 = "提取文件: " e.Item.Key ";"; } private void archive_FilePartExtractionBegin(object sender, FilePartExtractionBeginEventArgs e) { partTotal = e.Size; info_builde2 = "分卷:" e.Name ";"; } private void archive_CompressedBytesRead(object sender, CompressedBytesReadEventArgs e) { string percentage = entryTotal.HasValue ? CreatePercentage(e.CompressedBytesRead, entryTotal.Value).ToString() : "Unknown"; info_builde = info_builde1 info_builde2 "字节:" e.CompressedBytesRead ";百分比:" percentage "%"; this.CrossThreadCalls(() => { compress_Info.Text = info_builde; progress[1].Value = int.Parse(percentage) > 100 || int.Parse(percentage) < 0 ? 100 : int.Parse(percentage); if (volumes < 2) progress[0].Value = progress[1].Value; Application.DoEvents(); }); } private int CreatePercentage(long n, long d) { return (int)(((double)n / (double)d) * 100); }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# 创建PDF档实例下载
    创建PDF文档 本实例用到了第三方组件ICSharpCode.SharpZipLib.dll、itextsharp.dll,该组件可到网上下载。
    2013-01-21下载
    积分:1
  • C#生成缩略图 实例源码
    最简单的生成缩略图原理,.net版本
    2013-01-16下载
    积分:1
  • jquery.uploadify 上传实例源码下载
    Handler 里的文件 主要是创建文件夹 和文件用的.Upload 里的Index文件 是前台的调用 取你需要的UploadFile 我们这边是临时文件夹 上传成功 会吧文件删除 根据你的需求 不删就不用掉删除方法 DelFiles()uploadify 是他的源生js和css我们这边用的是MVC UploadController.cs 是控制器文件 里边有的方法是根据自己业务写的.UploadFileService 这个底层方法 里边有读取临时文件夹的 文档数据的方法 GetFileTempList()我把涉及到的 文件 都放进去了. 你可以根据代码看一下  这玩意我也没研究过 你先往你程序里套一下 哪不对咱在研究研究. 网络商场示例
    2015-01-27下载
    积分:1
  • C#实现对软加密(根据机器码生成 激活码)
    对软件进行加密。使软件只能在当前电脑上使用,更换电脑后无法使用
    2020-12-12下载
    积分:1
  • AutoCAD .NET开发指南-2012版》
    主要内容包括AutoCAD .NET API介绍、使用AutoCAD .NET API控制AutoCAD工作环境、创建及编辑AutoCAD实体、创建和编辑尺寸标注、3D图形处理、定义打印布局、打印输出、处理AutoCAD事件,以及使用Microsoft Visual Studio的错误处理、应用程序发布等。涵盖了AutoCAD .NET二次开发所涉及的所有基本任务。 在文档翻译后期,Autodesk公司发行了AutoCAD2014版。因此译者将指南中的示例代码在Microsoft Visual Studio2010SP1 AutoCAD2014环境下进行了测试(只测试了C#版代码),并将测试过程中发现的AutoCAD .NET API 2014版与AutoCAD .NET API 2012版的不同之处在本指南内作了标注。 由于译者英语水平及AUtoCAD二次开发水平和经验有限,肯定存在描述不准确的地方,欢迎大家指正并提出宝贵意见。
    2016-02-29下载
    积分:1
  • MVC EF开发的留言板实例源码下载
    MVC基于EF开发的留言板
    2015-01-27下载
    积分:1
  • C# 读写excel word(不用安装office)
    1, 有Vs2008 ,VS2010实例代码2,不需要安装office,不用com来调用了,免去了很多麻烦,调用office有时存在版本兼容问题,还要重新安装office很麻烦3. 能够读取,生成,excel, word,功能真的很强大
    2020-12-04下载
    积分:1
  • C# 压缩夹例子源码
    解压缩/压缩文件和文件夹 示例源码下载
    2013-09-02下载
    积分:1
  • C#读取Rss 并Xml实例下载
    asp.net中 读取远程 rss文件并以xml形式展示出来
    2013-01-04下载
    积分:1
  • unity读取Excel
    unity读取Excel
    2020-12-07下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载