//https://archive.codeplex.com/?p=dotnetzip
//最新在Nuget 下载DotNetZip using Ionic.Zip; private void button1_Click(object sender, EventArgs e)
{
string msg = "";
ExtractFile("D:\\1.zip", "d:\\OK\\");
ExtractFile("D:\\1.zip", "d:\\OK\\", false, out msg);
} public static bool ZipFolder(
String sourceFilePath,
String targetFileFullPath,
Boolean isUsePassword,
Int32 maxOutputSegmentSiez,
out String errMessage)
{
try
{
using (ZipFile zip = new ZipFile(Encoding.Default))
{
errMessage = String.Empty;
zip.Comment = "压缩文件时间" + System.DateTime.Now.ToString("G");
zip.Name = Guid.NewGuid().ToString().ToUpper() + ".zip";
if (isUsePassword)
zip.Password = "123";
zip.MaxOutputSegmentSize = maxOutputSegmentSiez * 1000;
zip.BufferSize = 1024;
zip.CaseSensitiveRetrieval = true;
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddDirectory(sourceFilePath);
zip.Save(targetFileFullPath);
return true;
}
}
catch (Exception ex) { errMessage = ex.Message; return false; }
} public static bool ExtractFile(String sourceFileFullPath, String targetFolderPath, Boolean isUsePassword, out String errMessage)
{
try
{
Encoding encoding = Encoding.UTF8;
errMessage = String.Empty;
var options = new ReadOptions { StatusMessageWriter = System.Console.Out, Encoding = encoding };
using (ZipFile zip = ZipFile.Read(sourceFileFullPath, options))
{
if (isUsePassword)
{ //假设有密码123
zip.Password = "123";
}
zip.AlternateEncoding = encoding;
zip.ExtractAll(targetFolderPath, ExtractExistingFileAction.OverwriteSilently);//一次批量解压
return true;
}
}
catch (Exception ex) { errMessage = ex.Message; return false; }
} public static bool ExtractFile(String sourceFileFullPath, String targetFolderPath)
{
try
{
Encoding encoding = Encoding.UTF8; var options = new ReadOptions { StatusMessageWriter = System.Console.Out, Encoding = encoding };
using (ZipFile zip = ZipFile.Read(sourceFileFullPath, options))
{
zip.AlternateEncoding = encoding;
foreach (var f in zip.Entries)
{//一个个解压
f.Extract(targetFolderPath, ExtractExistingFileAction.OverwriteSilently);
} return true;
}
}
catch (Exception ex)
{ return false;
}
}

  

c# 用DotNetZip来解压/压缩文件的更多相关文章

  1. linux解压/压缩文件

    1.*.tar 用 tar –xvf 解压  2.*.gz 用 gzip -d或者gunzip 解压  3.*.tar.gz和*.tgz 用 tar –xzf 解压  4.*.bz2 用 bzip2 ...

  2. Qt 解压/压缩文件

    很久没有在博客园写随笔了,今天项目需要解压和压缩文件,所以去了解哈. 参考的是大神的代码:https://yq.aliyun.com/articles/24428. 使用的是 QuaZIP类. 类 说 ...

  3. 解压压缩文件报错gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now

    压缩包是直接weget 后面加官网上的tar包地址获取的  [root@xuegod43 ~]# tar -zxvf /home/hadoop/hadoop-2.6.5-src.tar.gz gzip ...

  4. Linux 解压 压缩文件

    来源于:http://blog.csdn.net/mmllkkjj/article/details/6768294/ 解压 tar –xvf file.tar //解压 tar包tar -xzvf f ...

  5. Bug :”解压压缩文件失败: cpio; 在头中不存在归档“

    问题描述: 在rpm包目录下执行rpm -ivh *rpm -force时,出现标题错误 解决办法: *src.rpm包也就源码包不能被直接进行安装,需要先将src.rpm包进行编译生成二进制的rpm ...

  6. Linux解压rar文件

    Linux解压rar文件(unrar安装和使用,分卷解压) windows平台很多压缩文档为rar文件,那么怎么做到Linux解压rar文件(unrar安装和使用)? 简单,centos5安装unra ...

  7. Java 压缩/ 解压 .Z 文件

    1.问题描述 公司项目有需要用 JAVA 解压 .z文件. .z 是 unix 系统常见的压缩文件. 2.源码 import com.chilkatsoft.CkUnixCompress; impor ...

  8. (转载)C#压缩解压zip 文件

    转载之: C#压缩解压zip 文件 - 大气象 - 博客园http://www.cnblogs.com/greatverve/archive/2011/12/27/csharp-zip.html C# ...

  9. tar 多文件解压压缩

    tar 多文件解压:因为tar -zxvf一次值能解压一个文件,所以用xargs -n1 .先查找 ls *gz | xargs -n1 tar -zxvf .要解压的文件在list中 cat lis ...

随机推荐

  1. NOIP提高组初赛难题总结

    NOIP提高组初赛难题总结 注:笔者开始写本文章时noip初赛新题型还未公布,故会含有一些比较老的内容,敬请谅解. 约定: 若无特殊说明,本文中未知数均为整数 [表达式] 表示:在表达式成立时它的值为 ...

  2. 【Luogu P2201】【JZOJ 3922】数列编辑器

    题面: Description 小Z是一个爱好数学的小学生.最近,他在研究一些关于整数数列的性质. 为了方便他的研究,小Z希望实现一个叫做"Open Continuous Lines Pro ...

  3. honpeyhonepy

    2019.09.15 简历编辑功能: 2019.09.23 爬虫功能(智联招聘) 2.1 AI同步功能 2019.10.08 登录功能(包括普通用户登录.管理员.招聘人员) 2019.11.10 鉴权 ...

  4. 【NOI2007】项链工厂 ——老题新做.jpg

    第一次是用 ODT 过的...(虽说跑得飞慢但它就是能过) 而且还写了发题解... 第二次是在考场上碰到了这道题,然后居然打了线段树,各种 bug 直接让代码爆零 但还是补好了代码重新交了一发,发现跑 ...

  5. java代码转化为jar包,再转化为.exe文件步骤

    下面是具体步骤: 一.先把自己的程序发布成jar文件 这是eclipse自带的功能,右键工程包-->Export 然后选择Java-->JAR file,next 选择输出路径,next ...

  6. jQuery之排他思想

    使用的方法:click()    css()   siblings() <button>快速</button> <button>快速</button> ...

  7. Burp Suite详细使用教程-Intruder模块详3

    Burp Suite使用详细教程连载的第三章.0×02 Intruder—内置有效负荷测试使用技巧内置有效负荷测试选择项如下图: 今天的小技巧使用的是 numbers,给大伙科普下:Numbers 数 ...

  8. Docker守护式容器的创建和登录

    创建守护式容器 如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器(后台运行的容器). 创建(-d)并运行(-i)守护式容器命令如下(容器名称不能重复): docker run -id - ...

  9. egretios包接微信/facebook登录

    ios包有了,现在需要登录,就先使用微信登录吧,后继加一个facebook登录. 根据我的理解,先预测一下应该是怎么回事吧. 首先应该是要去微信的公共平台注册一下,说我的应用是什么应用,要填写企业信息 ...

  10. 使用Python发送企业微信消息

    准备工作: 到企业微信官网,注册一个企业:登录企业微信后台,创建一个“自建”应用, 获取企业ID.agentid.secret这3个必要的参数:在企业微信的通讯录中,创建多个测试账号:在手机端安装“企 ...