//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. 题解 CF978C 【Letters】

    此题评测机出了点问题,数据全部AC,却显示UKE 下面是数据全部AC,却显示UKE的代码 思路:b[i]减去每个宿舍的房间总数,如果b[i]小于了某个宿舍的房间总数则为答案. #include< ...

  2. Yii2.0 limit(1)与one()

    ActiveRecord中的limit(1)与one()的区别 (new \yii\db\Query())->from('user')->limit(1)->one() public ...

  3. while循环和字符串格式化

    小知识点 \n#换行 \t #制表 \r #回车 print(a,b,c,d,sep="\n")换行 sep默认空格 1.while--关键字(死循环) while 空格 条件: ...

  4. HNUSTOJ-1521 塔防游戏

    1521: 塔防游戏 时间限制: 1 Sec  内存限制: 128 MB提交: 117  解决: 38[提交][状态][讨论版] 题目描述 小明最近迷上了塔防游戏,塔防游戏的规则就是在地图上建炮塔,用 ...

  5. nginx运行出现 file not found 错误处理原因

    在阿里云装nginx+php+mysql nginx运行出现 file not found 错误处理原因 1,第一情况 location ~ \.php$ { # root html; fastcgi ...

  6. php编译完成后,module追加编译进php

    # 如果在编译的时候忘记添加某些模块,可以使用这种办法来重新编译添加! # 首先,进入PHP目录(未编译)的扩展目录 cd /home/soft/php-5.2.14/ext/ftp/ # 调用php ...

  7. WNMP环境搭建步骤 nginx1.4.3+php-5.3.27+mysql-5.5+RunHiddenConsole

    安装目录:D:/webServer/所需软件:     mysql-installer-community-5.5.34.0.msi         下载:http://cdn.mysql.com/D ...

  8. 锋利的jQuery ——jQuery选择器(二)

    一.jQuery选择器 1)CSS选择器 CSS选择器有:1>标签选择器  E{CSS规则} 2>ID选择器   #ID{CSS规则} 3>类选择器  E.className{CSS ...

  9. 用R语言提取数据框中日期对应年份(列表转矩阵)

    用R语言提取数据框中日期对应年份(列表转矩阵) 在数据处理中常会遇到要对数据框中的时间做聚类处理,如从"%m/%d/%Y"中提取年份. 对应操作为:拆分成列表——列表转矩阵——利用 ...

  10. goaccess实现nginx实现日志可视化

    一:goaccess模块 goaccess模块是将nginx的日志定向到goaccess模块里实现,原理很简单,只要将文件定向到那里就可以,goaccess是已经集成好显示数据的一个页面,非常的美观和 ...