Ionic.Zip
1.Ionic.zIP 实现文件压缩和解压
2.压缩:
/// <summary>
/// 压缩文件
/// </summary>
/// <param name="zipdirectory">压缩文件目录</param>
/// <param name="zipfileName">压缩文件名称</param>
/// <param name="adddirectoryfile">需要添加到压缩文件的目录 物理路径</param>
/// <param name="addfiles">需要添加到压缩文件的文件 物理路径</param>
/// <returns>是否成功</returns>
/// <example>
/// CompZipFiles(@"E:\\zipfile",DateTime.Now.ToString("yyMMddHHmmssff") + ".zip",@"E:\\testzip",new string[]{@"E:\\crebas.sql"}}
/// CompZipFiles(@"E:\\zipfile",DateTime.Now.ToString("yyMMddHHmmssff") + ".zip",@"E:\\testzip",null}
/// </example>
public bool CompZipFiles(string zipdirectory, string zipfileName, string adddirectoryfile, string[] addfiles)
{
bool result = false;//是否成功
try
{
if (!Directory.Exists(zipdirectory)) Directory.CreateDirectory(zipdirectory);
using (ZipFile zip = new ZipFile(zipdirectory + "\\" + zipfileName, Encoding.Default))
{
zip.Password = "lin.su";//加密压缩
if (!string.IsNullOrEmpty(adddirectoryfile)) zip.AddDirectory(adddirectoryfile);//添加目录到zip中
if (addfiles!=null && addfiles.Length > 0)
{
for (int i = 0; i < addfiles.Length; i++)
{
zip.AddFile(addfiles[i]);//添加文件到zip中
}
}
zip.Save();
result = true;
}
}
catch (Exception)
{
throw;
}
return result;
}
3.解压:
/// <summary>
/// 解压文件
/// </summary>
/// <param name="zipdirectory">zip 文件目录</param>
/// <param name="zipfileName">zip文件名称</param>
/// <param name="dedirectoryfile">解压目标文件目录</param>
/// <param name="defiles">解压的文件名称</param>
/// <param name="isAll">是否全部解压</param>
/// <returns>是否成功</returns>
/// <example>
/// ExtractZipFiles(@"E:\\zipfile", "13120210435607.zip", @"E:\\testzip2", new string[]{@"E:\\crebas.sql"}, false);
/// ExtractZipFiles(@"E:\\zipfile", "13120210435607.zip", @"E:\\testzip2", null, true);
/// </example>
public bool ExtractZipFiles(string zipdirectory, string zipfileName, string extractdirectoryfile, string[] extractfiles, bool isAll)
{
bool result = false;//是否成功
try
{
if (!Directory.Exists(extractdirectoryfile)) Directory.CreateDirectory(extractdirectoryfile);
using (ZipFile zip = ZipFile.Read(zipdirectory + "\\" + zipfileName ))
{
zip.Password = "lin.su";//密码解压
//Extract解压zip文件包的方法
if (isAll)
{
foreach (ZipEntry entry in zip)
{
//Extract解压zip文件包的方法,参数是保存解压后文件的路基
entry.Extract(extractdirectoryfile);
}
}
else
{
if(extractfiles!=null && extractfiles.Length>0){
for (int i = 0; i < extractfiles.Length; i++)
{
zip[extractfiles[i]].Extract(extractdirectoryfile);
}
}
}
result = true;
}
}
catch (Exception)
{
throw;
}
return result;
}
备注:解压出来的文件名如果有中文,则会出现乱码(是程序自动解压会有乱码)如果是手动解压就没有问题,不知道什么原因,估计有要修改源代码,如果谁弄好告诉我了
Ionic.Zip的更多相关文章
- ICSharpCode.SharpZipLib.dll,MyZip.dll,Ionic.Zip.dll 使用
MyZip.dll : 有BUG,会把子目录的文件解压到根目录.. ICSharpCode.SharpZipLib.dll: 把ICSharpCode.SharpZipLib.dll复制一份,重命名为 ...
- Ionic.Zip.dll文件压缩和解压
Ionic.Zip.dll文件压缩和解压 下载地址: http://download.csdn.net/detail/yfz19890410/5578515 1.下载Ionic.Zip.dll组件,添 ...
- C# Note17: 使用Ionic.Zip.dll实现解压缩文件
首先下载ionic.Zip.dll,然后在项目中添加该引用,之后就可以在cs中使用了: using Ionic.Zip; #region Ionic.Zip压缩文件 private readonly ...
- C# zip压缩 Ionic.Zip.dll
#region Ionic.Zip压缩文件 //压缩方法一 public void ExeCompOne() { string FileName = DateTime.Now.ToString(&qu ...
- 开源项目 11 Ionic Zip
using Ionic.Zip; using System; using System.Collections.Generic; using System.IO; using System.Linq; ...
- .Net类库 压缩文件 与 Ionic.Zip 批量压缩不同目录文件与解压 文件
using System; using System.IO; using System.IO.Compression; using System.Linq; using System.Text; us ...
- 通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)
前言 我们在做web系统中,导出也是很常用的一个功能,如果每一个数据列表都要对应写一个导出的方法不太现实.现在就想设计一个共通的功能来实现这个导出. 需求分析 在开始之前我们先要明白我们要实现怎样一个 ...
- asp.net 把图片压缩成zip之后再进行下载
//这是导出的js方法 function fundaochu() { var data = "keyword=GetImageListdaochu&type=daochu&m ...
- asp.net 文件压缩zip下载
今天分享下昨天做的一个东西 asp.net 的文件 zip 批量下载,首先你需要去 到http://dotnetzip.codeplex.com这个站点下载zip 的包,在里面找到 Ionic.Z ...
随机推荐
- fftw3.3.3在redhat4.4下安装
FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开 ...
- SpringMVC学习总结
SpringMVC部分重点组建介绍 前端处理器(DispatcherServlet):接受请求,响应结果,是SpringMVC的核心 处理映射器(HandlerMapping):根据URL去查找处理器 ...
- log4j.properties配置及详解
log4j.properties文件配置: log4j.rootLogger = debug,console log4j.appender.console = org.apache.log4j.Con ...
- UNION All中ORDER By的使用
一个sql中,union了几个子查询.单独执行每个子查询都没问题,但union后执行,报ORA-00904: "xxx": invalid identifier关于union的使用 ...
- js的事件的三个阶段,事件委托的原理
DOM2级事件规定的事件流的三个阶段:捕获,目标,冒泡(IE8以及更早版本不支持DOM事件流); 事件流: IE:IE事件流是事件冒泡流 Netscape事件流是事件捕获流 IE事件流 叫做事件冒泡 ...
- ElasticSearch入门介绍之安装部署(二)
散仙,在上篇文章对ElasticSearch整体入门作了个介绍,那么本篇我们来看下,如何安装,部署es,以及如何安装es的几个比较常用的插件. es的安装和部署,是非常简单方便的,至少这一点散仙在es ...
- idea查看jar冲突和解决方法
选中Dependencies,点上边那个按钮,出现下图 依赖图太小了,根本没法看啊?好办,点击鼠标右键,呼出右键菜单栏,然后点击Actual Size: 如果我们仔细观察上图,会发现在项目依赖图中,有 ...
- kuangbin带我飞QAQ 并查集
1. POJ 2236 给出N个点,一开始图是空白的,两个操作,一个是增加一个点(给出坐标),一个是查询两个点间是否相通,当两点间的距离小于D或者两点通过其他点间接相连时说这两个点相通.并查集维护,每 ...
- 主从复制系列B
从服务器靠中继日志来接收从主服务器上传回来的日志.并依靠状态文件来记录已经从主服务器接收了哪些日志,已经恢复了哪些日志. 中继日志与二进制日志的格式相同,并且可以用mysqlbinlog读取.SQL线 ...
- leyou_06_图片上传至FastDFS
1.推荐一个开源的FastDFS客户端,支持最新的SpringBoot2.0.配置使用极为简单,支持连接池,支持自动生成缩略图 1.1 在文件上传的微服务中 引入依赖 <dependency&g ...