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 292
下载积分: 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 个回复

  • MVC EF开发的留言板实例源码下载
    MVC基于EF开发的留言板
    2015-01-27下载
    积分:1
  • C#读取Rss 并Xml实例下载
    asp.net中 读取远程 rss文件并以xml形式展示出来
    2013-01-04下载
    积分:1
  • C#json、导出一年的节假日信息获得一年内的365天
    【实例简介】好些时候需要获得中国的法定节假日信息,本例就是获得一个这样的excel
    2021-08-15 00:31:04下载
    积分:1
  • C# 读写excel word(不用安装office)
    1, 有Vs2008 ,VS2010实例代码2,不需要安装office,不用com来调用了,免去了很多麻烦,调用office有时存在版本兼容问题,还要重新安装office很麻烦3. 能够读取,生成,excel, word,功能真的很强大
    2020-12-04下载
    积分:1
  • unity读取Excel
    unity读取Excel
    2020-12-07下载
    积分:1
  • c# dxfnet库说明帮助
    netDxf Documentation.chm
    2020-03-08下载
    积分:1
  • C# 读写excel表 例子源码下载
    C# 读写excel表 例子源码下载
    2014-11-04下载
    积分:1
  • jquery.uploadify 上传实例源码下载
    Handler 里的文件 主要是创建文件夹 和文件用的.Upload 里的Index文件 是前台的调用 取你需要的UploadFile 我们这边是临时文件夹 上传成功 会吧文件删除 根据你的需求 不删就不用掉删除方法 DelFiles()uploadify 是他的源生js和css我们这边用的是MVC UploadController.cs 是控制器文件 里边有的方法是根据自己业务写的.UploadFileService 这个底层方法 里边有读取临时文件夹的 文档数据的方法 GetFileTempList()我把涉及到的 文件 都放进去了. 你可以根据代码看一下  这玩意我也没研究过 你先往你程序里套一下 哪不对咱在研究研究. 网络商场示例
    2015-01-27下载
    积分: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
  • mencoderffmpeg 转换视频格式以及 视频截图功能
    mencoder和ffmpeg 转换视频格式以及 视频截图功能
    2013-08-24下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载