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 227
下载积分: 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# 压缩与压缩实例源码下载(可设置密码 加密压缩)
    可加密压缩,选择压缩文件 并设置压缩路径
    2015-03-14下载
    积分: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
  • c# 读取xml数据到datagrid中实例 附完整源码
    读取address.xml中的数据,并显示到datagrid中
    2013-04-23下载
    积分:1
  • asp.net C#+jquery+ajax 无刷新留言板
    本例采用asp.net C# jquery1.4.1 ajax的实现 本例主要用aspx文件请求 还可以用ashx处理 ajax返回类型也很多如:  dataType: "xml",dataType: "json",其实可区分为三种Text:“text/plain“;XML:“application/xml“;JSON:“application/json“.dataType为xml的时候,response.Write(string)中的字符串一定要符合xml的格式,为json的时候,response.Write(string)中的字符串一定要符合json的格式为否则会出现解析错误,这个和aspx页是一样的。如果要使用session的话,在handler的代码中添加System.Web.SessionState的引用,并让这个handler继承IRequiresSessionState接口,一定要继承这个接口,否则会出错的。以上本人简单总结只有用使用到它才能感觉到很奇妙主要jquery ajax静态页面查询添加 数据无刷新效果对初学者很有帮助 如有不懂地方可以加我QQ:709047174数据库采用的sql2008 你也可以选择2000、2005 等mysql数据库数据库文本 在App_Data中 feedbootdb.sql打开.sql文件并按照说明运行它即可,如运行不成功请可以自己打开sql服务管理器手动添加表。2013-08-221、新增ajax无刷新分页类似留言板样例
    2014-07-22下载
    积分:1
  • asp.net大上传实例【附全部源码下载】
    可上传上小于1G的文件,可以配置Web.config文件来设定上传文件的大小。 完全基于.NET开发,无需任何客户端配置。 提供同步的上传进度条,显示实时上传进度信息。 不破坏页面逻辑,提供类似ASP.NET内置上传组件的使用方法。 不受 Server.ScriptTimeout(请求的超时设置) 影响,可配置服务器处理时间。
    2013-02-18下载
    积分:1
  • C# 编码转换工具(支持UTF-8/UTF-7/Unicode/ASCII/GB2312(简体中)/BIG5 (繁体中)等编码转换 )
    文件编码转换工具,批量转换文件到UTF8,支持自识别原格式,支持备份。
    2019-06-28下载
    积分:1
  • DotNetZip 压缩实例源码 以及分卷压缩类下载
    此压缩包含有 C#的 开发实例以及 将文件 分卷压缩的类 源码文件 项目网址详见: http://dotnetzip.codeplex.com/
    2013-06-25下载
    积分:1
  • c#测试上位机 实例源码下载
    c#上位机调试
    2017-04-01下载
    积分:1
  • C# 读写excel word(不用安装office)
    1, 有Vs2008 ,VS2010实例代码2,不需要安装office,不用com来调用了,免去了很多麻烦,调用office有时存在版本兼容问题,还要重新安装office很麻烦3. 能够读取,生成,excel, word,功能真的很强大
    2020-12-04下载
    积分:1
  • ICSharpCode.SharpZipLib.dll 压缩例子 并附完整ISharpZip项目源码
    ICSharpCode.SharpZipLib.dll 解压缩文件例子 并附完整ISharpZip项目源码
    2013-06-25下载
    积分:1
  • 696518资源总数
  • 106161会员总数
  • 5今日下载