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的更多相关文章

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

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

  2. Ionic.Zip.dll文件压缩和解压

    Ionic.Zip.dll文件压缩和解压 下载地址: http://download.csdn.net/detail/yfz19890410/5578515 1.下载Ionic.Zip.dll组件,添 ...

  3. C# Note17: 使用Ionic.Zip.dll实现解压缩文件

    首先下载ionic.Zip.dll,然后在项目中添加该引用,之后就可以在cs中使用了: using Ionic.Zip; #region Ionic.Zip压缩文件 private readonly ...

  4. C# zip压缩 Ionic.Zip.dll

    #region Ionic.Zip压缩文件 //压缩方法一 public void ExeCompOne() { string FileName = DateTime.Now.ToString(&qu ...

  5. 开源项目 11 Ionic Zip

    using Ionic.Zip; using System; using System.Collections.Generic; using System.IO; using System.Linq; ...

  6. .Net类库 压缩文件 与 Ionic.Zip 批量压缩不同目录文件与解压 文件

    using System; using System.IO; using System.IO.Compression; using System.Linq; using System.Text; us ...

  7. 通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)

    前言 我们在做web系统中,导出也是很常用的一个功能,如果每一个数据列表都要对应写一个导出的方法不太现实.现在就想设计一个共通的功能来实现这个导出. 需求分析 在开始之前我们先要明白我们要实现怎样一个 ...

  8. asp.net 把图片压缩成zip之后再进行下载

    //这是导出的js方法 function fundaochu() { var data = "keyword=GetImageListdaochu&type=daochu&m ...

  9. asp.net 文件压缩zip下载

     今天分享下昨天做的一个东西 asp.net 的文件  zip 批量下载,首先你需要去 到http://dotnetzip.codeplex.com这个站点下载zip 的包,在里面找到 Ionic.Z ...

随机推荐

  1. Android之GridLayout网格布局

    1.相关属性 GridLayout网格布局是4.0之后引入的布局方式! android:columnCount="4" //设置列数(4列) android:rowCount=&q ...

  2. layui -关闭窗口方法

    1.关闭当前窗口 var index=parent.layer.getFrameIndex(window.name); //获取当前窗口的nameparent.layer.close(index); ...

  3. Codeforces 500D. New Year Santa Network

    题目大意 给你一颗有\(n\)个点的树\(T\),边上有边权. 规定,\(d(i,j)\)表示点i到点j路径上的边权之和. 给你\(q\)次询问,每次询问格式为\(i, j\),表示将按输入顺序排序的 ...

  4. urllib与urllib2的学习总结

    先啰嗦一句,我使用的版本是python2.7,没有使用3.X的原因是我觉得2.7的扩展比较多,且较之前的版本变化不大,使用顺手.3.X简直就是革命性的变化,用的蹩手.3.x的版本urllib与urll ...

  5. HZOI20190829模拟33题解

    题面:https://www.cnblogs.com/Juve/articles/11436771.html A:春思 我们对a分解质因数,则$a=\prod\limits_p^{p|a}p^k$ 所 ...

  6. HZOI2019序列

    题目链接:https://www.cnblogs.com/Juve/articles/11186805.html(密码是我的一个oj用户名) 题解: 这题我考试打的暴力,只有5分. 一开始理解错题意了 ...

  7. svn 设置快捷命令

    # some more svn aliases alias svnset='svn propset svn:externals . -F' alias svnget='svn propget svn: ...

  8. watch、tail联合使用

    因为用了tmux,不想调整窗格大小,只想输出命令结果的最后几行,所以就想出了这个方法. watch.tail联合用法 watch 'echo "`nvidia-smi`" | ta ...

  9. 第二章 Odoo 12开发之开发环境准备

    在更深入了解 Odoo 开发之前,我们应配置好开发环境并学习相关的基础管理任务.本文中,我们将学习创建 Odoo 应用所需用到的工具和环境配置.这里采用 Ubuntu 系统来作为开发服务器实例的主机, ...

  10. Android SDK上手指南:示例项目

    Android SDK上手指南:示例项目 2013-12-26 15:40 核子可乐译 51CTO 字号:T | T Android SDK示例项目中的应用能够执行种种功能,例如各类用户界面元素.数据 ...