C#压缩大文件

3/8/2017来源:ASP.NET技巧人气:1128

代码 using ICSharpCode.SharpZipLib.Core; using ICSharpCode.SharpZipLib.Zip; /// <summary> /// FastZip (快速压缩) /// </summary> /// <param name="IsbPRogress">是否显示进度条</param> /// <param name="SrcZipFileName">压缩文件名(包括路径)</param> /// <param name="TgtFolderPath">目标文件夹路径</param> /// <returns></returns> public bool ShapeZipLib_ZipDirectory(bool IsbProgress,string SrcZipFileName,string TgtFolderPath) { bool iRet = true; FastZipEvents events = null; try { TimeSpan interval = TimeSpan.FromSeconds(1); bool createEmptyDirs = false; bool restoreDates = false; bool restoreAttributes = false; bool recurse = false; string fileFilter = null; string dirFilter = null; events = new FastZipEvents(); events.ProcessDirectory = new ProcessDirectoryHandler(ProcessDirectory); events.ProcessFile = new ProcessFileHandler(ProcessFile); if (IsbProgress) { events.Progress = new ProgressHandler(ShowProgress); events.ProgressInterval = interval; } FastZip fastZip = new FastZip(events); fastZip.CreateEmptyDirectories = createEmptyDirs; fastZip.RestoreAttributesOnExtract = restoreAttributes; fastZip.RestoreDateTimeOnExtract = restoreDates; fastZip.CreateZip(SrcZipFileName, TgtFolderPath, recurse, fileFilter, dirFilter); } catch (Exception ex) { return iRet = false; } return iRet; } private void ProcessDirectory(object sender, DirectoryEventArgs e) { if (!e.HasMatchingFiles) { Console.WriteLine(e.Name); } } private void ProcessFile(object sender, ScanEventArgs e) { this.m_ProcessFileName_New = e.Name; if ( 0 != string.Compare(this.m_ProcessFileName_New, this.m_ProcessFileName_Old)) { this.m_ProcessFileName_Old = this.m_ProcessFileName_New; if (null != this.m_ProgresBar) { int value = 0; Util.SetProcessValue(this.m_ProgresBar, value); } } } private void ShowProgress(object sender, ProgressEventArgs e) { try { if (null == this.m_ProgresBar) throw new Exception("进度条空件为空!"); int value = Convert.ToInt32(e.PercentComplete); Util.SetProcessValue(this.m_ProgresBar, value); } catch(Exception ex) { string strErrMsg = ex.Message; } }

2 . ICSharpCode.SharpZipLibLib 地址