資源簡介
c# 解壓zip完整demo 帶進度條

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.IO;
using?System.Linq;
using?System.Text;
using?System.Text.Regularexpressions;
using?System.Threading.Tasks;
namespace?compressDemo
{
????///?
????///?壓縮/解壓公共類
????///?
????public?class?compress
????{
????????public?compress()
????????{
????????}
????????///?
????????///?進度委托
????????///?
????????///?
????????///?
????????public?delegate?void?UpNum(double?index?double?num);//聲明委托
????????public?UpNum?UpNumObj;//委托對象
????????public?delegate?void?overDelegate();?//結束的委托
????????public?overDelegate?overD;//委托對象
????????///?
????????///?解壓時是否剔除和文件名相同的根目錄
????????///?
????????public?bool?isRootPath?=?false;
????????///?
????????///??解壓文件?自動匹配?rar文件?和zip
????????///?
????????///?壓縮文件目錄
????????///?解壓目錄
????????///?解壓密碼
????????///?
????????public?bool?Unpack(string?FileToUp?string?edFolder?string?password?=?““)
????????{
????????????bool?flag?=?false;
????????????//獲取文件的真正類型
????????????string?f?=?FileType.GetFileType(FileToUp);
????????????try
????????????{
????????????????switch?(f)
????????????????{
????????????????????case?“zip“:
????????????????????????flag?=?UnZip(FileToUp?edFolder?password?=?““);
????????????????????????break;
????????????????????case?“rar“:
????????????????????????
????????????????????????break;
????????????????}
????????????}
????????????catch?(Exception)
????????????{
????????????}
????????????finally
????????????{
????????????????//結束的委托
????????????????if?(overD?!=?null)
????????????????????overD();
????????????}
????????????return?flag;
????????}
????????
????????#region?解壓文件
????????///?
????????///?解壓文件
????????///?
????????///?待解壓的文件
????????///?指定解壓目標目錄
????????private?bool?UnZip(string?FileToUpZip?string?ZipedFolder?string?password?=?““)
????????{
????????????//System.Diagnostics.Stopwatch?sw?=?new?System.Diagnostics.Stopwatch();
????????????//sw.Start();
????????????bool?blResult;//表示解壓是否成功的返回結果
????????????if?(!File.Exists(FileToUpZip))
????????????{
????????????????blResult?=?false;
????????????????return?blResult;
????????????}
????????????if?(!Directory.Exists(ZipedFolder))
????????????{
????????????????Directory.CreateDirectory(ZipedFolder);
????????????}
????????????FileStream?OpenStream?=?null;
????????????Ionic.Zip.ZipFile?zipFile?=?null;
????????????FileStream?streamWriter?=?null;
????????????double?per?=?0;?//當前百分比
????????????double?currentNum?=?0;?//當前解壓了的大小
????????????double?count?=?0;?//解壓后的總大小
????????????try
????????????{
????????????????OpenStream?=?File.OpenRead(FileToUpZip);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-01-12?10:30??compressDemo\
?????目錄???????????0??2017-01-12?11:01??compressDemo\compressDemo\
?????文件?????????187??2017-01-12?10:30??compressDemo\compressDemo\App.config
?????文件????????2675??2017-01-12?10:59??compressDemo\compressDemo\FileType.cs
?????文件????????4159??2017-01-12?10:53??compressDemo\compressDemo\Form1.Designer.cs
?????文件????????6260??2017-01-12?11:01??compressDemo\compressDemo\Form1.cs
?????文件????????5817??2017-01-12?10:53??compressDemo\compressDemo\Form1.resx
?????文件?????????524??2017-01-12?10:30??compressDemo\compressDemo\Program.cs
?????目錄???????????0??2017-01-12?10:30??compressDemo\compressDemo\Properties\
?????文件????????1366??2017-01-12?10:30??compressDemo\compressDemo\Properties\AssemblyInfo.cs
?????文件????????2876??2017-01-12?10:30??compressDemo\compressDemo\Properties\Resources.Designer.cs
?????文件????????5612??2017-01-12?10:30??compressDemo\compressDemo\Properties\Resources.resx
?????文件????????1099??2017-01-12?10:30??compressDemo\compressDemo\Properties\Settings.Designer.cs
?????文件?????????249??2017-01-12?10:30??compressDemo\compressDemo\Properties\Settings.settings
?????目錄???????????0??2017-01-12?10:30??compressDemo\compressDemo\bin\
?????目錄???????????0??2017-01-12?11:01??compressDemo\compressDemo\bin\Debug\
?????文件??????462336??2011-08-07?10:01??compressDemo\compressDemo\bin\Debug\Ionic.Zip.dll
?????文件???????15360??2017-01-12?11:01??compressDemo\compressDemo\bin\Debug\compressDemo.exe
?????文件?????????187??2017-01-12?10:30??compressDemo\compressDemo\bin\Debug\compressDemo.exe.config
?????文件???????38400??2017-01-12?11:01??compressDemo\compressDemo\bin\Debug\compressDemo.pdb
?????文件???????23168??2017-01-12?11:01??compressDemo\compressDemo\bin\Debug\compressDemo.vshost.exe
?????文件?????????187??2017-01-12?10:30??compressDemo\compressDemo\bin\Debug\compressDemo.vshost.exe.config
?????文件?????????490??2013-03-18?17:00??compressDemo\compressDemo\bin\Debug\compressDemo.vshost.exe.manifest
?????文件????????6629??2017-01-12?11:00??compressDemo\compressDemo\compress.cs
?????文件????????3983??2017-01-12?11:00??compressDemo\compressDemo\compressDemo.csproj
?????目錄???????????0??2017-01-12?10:33??compressDemo\compressDemo\dll\
?????文件??????462336??2011-08-07?10:01??compressDemo\compressDemo\dll\Ionic.Zip.dll
?????目錄???????????0??2017-01-12?10:30??compressDemo\compressDemo\obj\
?????目錄???????????0??2017-01-12?11:01??compressDemo\compressDemo\obj\Debug\
?????文件?????????865??2017-01-12?10:30??compressDemo\compressDemo\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件????????7111??2017-01-12?10:59??compressDemo\compressDemo\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
............此處省略13個文件信息
- 上一篇:PC/SC 微軟智能卡C#開發框架庫
- 下一篇:C#資源\\修改文件備注源碼
評論
共有 條評論