原文:基于ICSharpCode.SharpZipLib.Zip的压缩解压缩

今天记压缩解压缩的使用,是基于开源项目ICSharpCode.SharpZipLib.Zip的使用。

一、压缩:

/// <summary>
/// 压缩
/// </summary>
/// <param name="sourceDirectory"></param>
/// <param name="targetZipName"></param>
/// <param name="recurse"></param>
/// <param name="filter"></param>
/// <returns></returns>
public static void CreateZip(string zipFileName, string sourceDirectory, bool recurse=true, string fileFilter="")
{
if (string.IsNullOrEmpty(sourceDirectory))
{
throw new ArgumentNullException("SourceZipDirectory");
}
if (string.IsNullOrEmpty(zipFileName))
{
throw new ArgumentNullException("TargetZipName");
}
if (!Directory.Exists(sourceDirectory))
{
throw new DirectoryNotFoundException("SourceDirecotry");
}
if (Path.GetExtension(zipFileName).ToUpper() != ".ZIP")
throw new ArgumentException("TargetZipName is not zip");
FastZip fastZip = new FastZip();
fastZip.CreateZip(zipFileName, sourceDirectory, recurse, fileFilter);
}

  

二、解压缩:

/// <summary>
/// 解压
/// </summary>
/// <param name="zipFileName"></param>
/// <param name="targetDirectory"></param>
/// <param name="fileFilter"></param>
public static void ExtractZip(string zipFileName, string targetDirectory, string fileFilter="")
{
if (string.IsNullOrEmpty(zipFileName))
{
throw new ArgumentNullException("ZIPFileName");
}
if (!File.Exists(zipFileName))
{
throw new FileNotFoundException("zipFileName");
}
if (Path.GetExtension(zipFileName).ToUpper() != ".ZIP")
{
throw new ArgumentException("ZipFileName is not Zip ");
}
FastZip fastZip = new FastZip();
fastZip.ExtractZip(zipFileName, targetDirectory, fileFilter);
}

三、添加文件至压缩文件中

 /// <summary>
/// 添加文件到压缩文件中
/// </summary>
/// <param name="zipFileName"></param>
/// <param name="filesNames"></param>
public static void AddFileToZip(string zipFileName, List<string> filesNames)
{
if (string.IsNullOrEmpty(zipFileName))
{
throw new ArgumentNullException("ZipName");
}
if (!File.Exists(zipFileName))
{
throw new FileNotFoundException("ZipName");
}
if (Path.GetExtension(zipFileName).ToUpper() != ".ZIP")
{
throw new ArgumentException("ZipFileName is not Zip ");
}
if(filesNames==null||filesNames.Count<)
return;
using (ZipFile zFile = new ZipFile(zipFileName))
{ zFile.BeginUpdate(); foreach (string fileName in filesNames)
{
zFile.Add(fileName);
} zFile.CommitUpdate();
} }

四、移除压缩文件中的文件

     /// <summary>
/// 移除压缩文件中的文件
/// </summary>
/// <param name="zipName"></param>
/// <param name="fileNames"></param>
public static void DeleteFileFromZip(string zipFileName, IList<string> fileNames)
{
if (string.IsNullOrEmpty(zipFileName))
{
throw new ArgumentNullException("ZipName");
}
if (Path.GetExtension(zipFileName).ToUpper() != ".ZIP")
{
throw new ArgumentException("ZipName");
}
if(fileNames==null||fileNames.Count<)
{
return ;
}
using (ZipFile zipFile = new ZipFile(zipFileName))
{
zipFile.BeginUpdate();
foreach(string fileName in fileNames)
{
zipFile.Delete(fileName);
}
zipFile.CommitUpdate();
}
}

以上是基于ICSharpCode.SharpZipLib.Zip的部分使用,当然还有许多地方需要学习的。ICSharpCode.SharpZipLib.Zip使用起来比较快速方便,不想GZip那样对文件进行压缩时,还要进行复杂的操作。

今天就写这么多吧。

基于ICSharpCode.SharpZipLib.Zip的压缩解压缩的更多相关文章

  1. 使用ICSharpCode.SharpZipLib.Zip实现压缩与解压缩

    使用开源类库ICSharpCode.SharpZipLib.Zip可以实现压缩与解压缩功能,源代码和DLL可以从http://www.icsharpcode.net/OpenSource/SharpZ ...

  2. C#调用 ICSharpCode.SharpZipLib.Zip 实现解压缩功能公用类

    最近想用个解压缩功能 从网上找了找 加自己修改,个人感觉还是比较好用的,直接上代码如下 using System; using System.Linq; using System.IO; using ...

  3. 利用ICSharpCode.SharpZipLib.Zip进行文件压缩

    官网http://www.icsharpcode.net/ 支持文件和字符压缩. 创建全新的压缩包 第一步,创建压缩包 using ICSharpCode.SharpZipLib.Zip; ZipOu ...

  4. C# ICSharpCode.SharpZipLib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用

    工作中我们很多时候需要进行对文件进行压缩,比较通用的压缩的dll就是ICSharpCode.SharpZipLib.dll,废话不多了,网上也有很多的资料,我将其最常用的两个函数整理了一下,提供了一个 ...

  5. C# ZipHelper C#公共类 -- ICSharpCode.SharpZipLib.dll实现压缩和解压

    关于本文档的说明 本文档基于ICSharpCode.SharpZipLib.dll的封装,常用的解压和压缩方法都已经涵盖在内,都是经过项目实战积累下来的 1.基本介绍 由于项目中需要用到各种压缩将文件 ...

  6. 使用NPOI读取Excel报错ICSharpCode.SharpZipLib.Zip.ZipException:Wrong Local header signature

    写了一个小程序利用NPOI来读取Excel,弹出这样的报错: ICSharpCode.SharpZipLib.Zip.ZipException:Wrong Local header signature ...

  7. C# 利用ICSharpCode.SharpZipLib.dll 实现压缩和解压缩文件

    我们 开发时经常会遇到需要压缩文件的需求,利用C#的开源组件ICSharpCode.SharpZipLib, 就可以很容易的实现压缩和解压缩功能. 压缩文件: /// <summary> ...

  8. ICSharpCode.SharpZipLib.Zip

    //压缩整个目录下载 var projectFolder = Request.Params["folder"] != null ? Request.Params["fol ...

  9. c# ICSharpCode.SharpZipLib.Zip实现文件的压缩

    首先了解ZipOutPutStream和ZipEntry对象 ZipOutPutStream对象 如果要完成一个文件或文件夹的压缩,则要使用ZipOutputStream类.ZipOutputStre ...

随机推荐

  1. Selenium来抓取动态加载的页面

    一般的爬虫都是直接使用http协议,下载指定url的html内容,并对内容进行分析和抽取.在我写的爬虫框架webmagic里也使用了HttpClient来完成这样的任务. 但是有些页面是通过js以及a ...

  2. 一个通用onReady函数的实现

    define([], function(){ function onReady(fn) { var DOC = document, html = DOC.documentElement, W3C = ...

  3. Linux 利用hosts.deny 防止暴力破解ssh(转)

    一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7 ...

  4. ANSI Common Lisp 中文翻譯版 — ANSI Common Lisp 中文版

    ANSI Common Lisp 中文翻譯版 — ANSI Common Lisp 中文版 ANSI Common Lisp 中文翻譯版¶

  5. 为什么 string.find()返回值是-1

    之前好像在哪里见到过这个问题,时间有点久,想不起来了,今天写字符串又碰到这个问题,书上给出的定义是当string.find()没有找到时返回的是一个非常大的值,网上有人说是-1,两种说法都对,由于整数 ...

  6. UVA 11237 - Halloween treats(鸽笼原理)

    11237 - Halloween treats option=com_onlinejudge&Itemid=8&page=show_problem&category=516& ...

  7. tomcat 下部署 php

    由于需要测试一个PHP的环境.故记录此处. 环境 OS:win8.1 up1 64bit tomcat :8.0.14 64bit php:php-5.6.2-Win32-VC11-x64.zip 将 ...

  8. Ubuntu——grub rescue 主引导修复

    长期使用windows 和 ubuntu 人双系统,很可能遇到沉重的一个系统,或以其他方式加盟分区,导致系统重新启动时 : GRUB loading error:unknow filesystem g ...

  9. TMS320F28335项目开发记录9_28335中断系统

    28335中断系统 1.中断系统 在这里我们要十分清楚DSP的中断系统. C28XX一共同拥有16个中断源,当中有2个不可屏蔽的中断RESET和NMI.定时器1和定时器2分别使用中断13和14.这样还 ...

  10. linux+nginx+mysql+php

    LNMP(linux+nginx+mysql+php)服务器环境配置   一.简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为 “engine X”, 是一个高性能的 ...