using Ionic.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApp2.test1
{
public class Class11
{
//Ionic.Zip.dll
//原文:https://www.cnblogs.com/chenghu/p/4607866.html
//https://blog.csdn.net/XuWei_XuWei/article/details/18663185 public void test1()
{
string FileName = DateTime.Now.ToString("yyMMddHHmmssff");
//ZipFile实例化一个压缩文件保存路径的一个对象zip
using (ZipFile zip = new ZipFile(@"E:\\4\\" + FileName + ".zip", Encoding.Default))
{
//加密压缩
//zip.Password = "123456";
//将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称)
zip.AddDirectory(@"E:\\WenQuan3_3dtile");
//将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept
//zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml");
zip.Save();
}
} public void test2()
{
string FileName = DateTime.Now.ToString("yyMMddHHmmssff");
//ZipFile实例化一个对象zip
using (ZipFile zip = new ZipFile())
{
//加密压缩
zip.Password = "";
//将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称)
zip.AddDirectory(@"E:\\WenQuan3_3dtile");
//将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept
//zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml");
//用zip对象中Save重载方法保存压缩的文件,参数为保存压缩文件的路径
zip.Save(@"E:\\4\\" + FileName + ".zip");
}
} public void test3()
{
string unZipFileAddress = "E://4.zip";//解压文件地址
string unZipFileExistAssress = "E://4//";//解压后存放目录
string pass = null; using (ZipFile zip = new ZipFile(unZipFileAddress, Encoding.Default))
{
//解压密码
if (pass != null)
{
zip.Password = pass;
}
//目录存在与否
if (!Directory.Exists(unZipFileExistAssress))
{
Directory.CreateDirectory(unZipFileExistAssress);
}
//解压
foreach (ZipEntry entry in zip)
{
entry.Extract(@unZipFileExistAssress);
}
}
} /// <summary>
/// 实现解压
/// </summary>
/// <param name="unZipFileAddress">解压文件地址</param>
/// <param name="unZipFileExistAssress">解压后存放目录</param>
/// <param name="pass">解压密码</param>
public void UnZipFile(string unZipFileAddress, string unZipFileExistAssress, string pass = null)
{
using (ZipFile zip = new ZipFile(unZipFileAddress, Encoding.Default))
{
//解压密码
if (pass != null)
{
zip.Password = pass;
}
//目录存在与否
if (!Directory.Exists(unZipFileExistAssress))
{
Directory.CreateDirectory(unZipFileExistAssress);
}
//解压
foreach (ZipEntry entry in zip)
{
entry.Extract(@unZipFileExistAssress);
}
}
} }
}

开源项目 11 Ionic Zip的更多相关文章

  1. 【开源项目11】组件间通信利器EventBus

    概述及基本概念 **EventBus**是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间 的通信.比如请求网络,等网络返回时通过Han ...

  2. [ionic开源项目教程] - 第11讲 封装BaseController实现controller继承

    关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 截止到第10讲,tab1[健康]模块的功能基本已经完成了,但这一讲中,controller层又做了较大的改动,因为下一讲中t ...

  3. [ionic开源项目教程] - 手把手教你使用移动跨平台开发框架Ionic开发一个新闻阅读APP

    前言 这是一个系列文章,从环境搭建开始讲解,包括网络数据请求,将持续更新到项目完结.实战开发中遇到的各种问题的解决方案,也都将毫无保留的分享给大家. 关注订阅号:TongeBlog ,查看移动端跨平台 ...

  4. [ionic开源项目教程] - 第10讲 新闻详情页的用户体验优化

    目录 [ionic开源项目教程] 第1讲 前言,技术储备,环境搭建,常用命令 [ionic开源项目教程] 第2讲 新建项目,架构页面,配置app.js和controllers.js [ionic开源项 ...

  5. [ionic开源项目教程] - 第9讲 新闻详情页的实现

    目录 [ionic开源项目教程] 第1讲 前言,技术储备,环境搭建,常用命令 [ionic开源项目教程] 第2讲 新建项目,架构页面,配置app.js和controllers.js [ionic开源项 ...

  6. ICSharpCode.SharpZipLib.dll,MyZip.dll,Ionic.Zip.dll 使用

    MyZip.dll : 有BUG,会把子目录的文件解压到根目录.. ICSharpCode.SharpZipLib.dll: 把ICSharpCode.SharpZipLib.dll复制一份,重命名为 ...

  7. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...

  8. [ionic开源项目教程] - 第14讲 ionic解决跨域问题

    [ionic开源项目教程] 第14讲 使用jsonp解决跨域问题 相信很多朋友在开发中都会遇到以下这个问题. No 'Access-Control-Allow-Origin' header is pr ...

  9. [ionic开源项目教程] - 第13讲 Service层优化,提取公用Service,以及生活和农业两大模块的实现

    关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 这一讲主要实现生活和农业两大模块的实现,在这个过程中,对service层提取出一个公用的BaseService. 这一讲分为 ...

随机推荐

  1. Spring-AOP切面编程(3)

    https://www.jianshu.com/p/be69b874a2a9 目录 1. Web MVC发展史历程2.Spring概要3.Spring-依赖注入概要(IOC)4.属性注入的三种实现方式 ...

  2. 关于justify-content属性的再学习(区分三个属性)

    justify-content属性: 用来表示可伸缩项目在主轴方向上的对齐方式: 取值范围为flex-start,flex-end,center,space-between,space-around: ...

  3. vim插件(vim-emmet)安装步骤

    vim安装插件  vim-emmetvim-emmet网址  https://www.vim.org/scripts/script.php?script_id=2981pathogen.vim网址  ...

  4. 如何用JS获取地址栏参数的方法

    采用正则表达式获取地址栏参数: 写一个方法来进行正则匹配,同样也可以复用 function GetPar(name) { var reg = new RegExp("(^|&)&qu ...

  5. Android为TV端助力之点击Textview无效

    记录一下如果有两个Textview都有点击事件,那么不能给Textview同时设置 android:focusable="true"android:focusableInTouch ...

  6. 图说jdk1.8新特性(1)--- 函数式接口

    函数式接口 总结起来就以下几点: 如果一个接口要想成为函数接口(函数接口可以直接用lambda方式简化),则必须有且仅有一个抽象的方法(非default和static) 可以通过注解@Function ...

  7. 如何在Win7电脑上增加新磁盘分区?

    原文链接: https://www.cnblogs.com/haoxitong/p/9405497.html 我们在重装好系统Win7系统后有时会碰到需要新建磁盘分区的情况,这时我们再重装系统进行磁盘 ...

  8. python_多线程

    1.多线程的实现与阻塞 import time import threading def fun_yellow(num): for i in range(1,num+1): print('正在拿第:' ...

  9. 洛谷P3629 [APIO2010]巡逻(树的直径)

    如果考虑不算上新修的道路,那么答案显然为\(2*(n-1)\). 考虑\(k=1\)的情况,会发现如果我们新修建一个道路,那么就会有一段路程少走一遍.这时选择连接树的直径的两个端点显然是最优的. 难就 ...

  10. js 变量以及函数传参

    一.变量: 基本类型是变量对象重新创建一个新值给变量对象空间,虽然是同一个值但是互不影响. 引用类型是也是将一个值重新赋值给新的变量空间,但是这个值是堆中对象的一个指针,新的变量和旧的变量指向是同一个 ...