分卷压缩使用方法:

         int iMinLength = 100;//最小压缩包单位(100M)ZipHelper.Compress("../../../xxx.xx", "../../../xx.zip", ZipDataUnit.MB, iMinLength);//分卷压缩

解压使用方法 :

        string strUnZipPath = Environment.CurrentDirectory + "\\DeCompress";ZipHelper.DeCompress("../../../xx.zip", strUnZipPath);//解压分卷时,解压后缀为zip的文件即可

方法类:

    public static class ZipHelper{/// <summary> /// 压缩指定文件或目录 /// </summary> /// <param name="fileOrDirectoryName">要进行压缩的文件或目录名称</param> /// <returns>生成的压缩文件名</returns> public static string Compress(string fileOrDirectoryName){string zipPath = _GetZipPath(fileOrDirectoryName);Compress(fileOrDirectoryName, zipPath);return zipPath;}/// <summary> /// 压缩指定文件或目录 /// </summary> /// <param name="fileOrDirectoryName">要进行压缩的文件或目录名称</param> /// <param name="zipPath">生成的压缩文件路径</param> public static void Compress(string fileOrDirectoryName, string zipPath){using (ZipFile zip = new ZipFile(Encoding.GetEncoding("utf-8"))){zip.AddItem(fileOrDirectoryName, "");zip.Save(zipPath);}}/// <summary> /// 分卷压缩指定文件或目录 /// </summary> /// <param name="fileOrDirectoryName">要进行压缩的文件或目录名称</param> /// <param name="segmentSize">分卷大小(MB)</param> public static void Compress(string fileOrDirectoryName, int segmentSize){string zipPath = _GetZipPath(fileOrDirectoryName);Compress(fileOrDirectoryName, zipPath, ZipDataUnit.MB, segmentSize);}/// <summary> /// 分卷压缩指定文件或目录 /// </summary> /// <param name="fileOrDirectoryName">要进行压缩的文件或目录名称</param> /// <param name="zipPath">生成的压缩文件路径</param> /// <param name="dataUnit">分卷数据单位</param> /// <param name="segmentSize">分卷大小</param> public static void Compress(string fileOrDirectoryName, string zipPath, ZipDataUnit dataUnit, int segmentSize){try{using (ZipFile zip = new ZipFile(Encoding.GetEncoding("utf-8"))){zip.MaxOutputSegmentSize = (int)dataUnit * segmentSize;zip.UseZip64WhenSaving = Zip64Option.Always;zip.BufferSize = 1024;zip.CaseSensitiveRetrieval = true;zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;zip.AddItem(fileOrDirectoryName, "");zip.Save(zipPath);}}catch (Exception ex){throw ex;}}private static string _GetZipPath(string path){string directory = Path.GetDirectoryName(path);if (string.IsNullOrWhiteSpace(directory)) directory = Path.GetPathRoot(path);string fileName = Path.GetFileName(path);string zipFileName = null;//文件路径 if (!string.IsNullOrWhiteSpace(fileName)){zipFileName = Path.ChangeExtension(fileName, ".zip");}else{zipFileName = directory.Split('\\').Last();if (string.IsNullOrEmpty(zipFileName)){zipFileName = "未命名";}else{directory = directory.Replace(zipFileName, "");}zipFileName = ".zip";}return Path.Combine(directory, zipFileName);}/// <summary>/// 解压文件/// </summary>/// <param name="strZipPath">zip文件路径</param>/// <param name="strUnZipPath">解压文件夹</param>public static void DeCompress(string strZipPath, string strUnZipPath){bool overWrite = true;//设置是否覆盖文件using (ZipFile zip = ZipFile.Read(strZipPath, Encoding.GetEncoding("utf-8"))){foreach (ZipEntry entry in zip){if (string.IsNullOrEmpty(strUnZipPath)){strUnZipPath = strZipPath.Split('.')[0];}if (overWrite){entry.Extract(strUnZipPath, ExtractExistingFileAction.OverwriteSilently);//解压文件,如果已存在就覆盖}else{entry.Extract(strUnZipPath, ExtractExistingFileAction.DoNotOverwrite);//解压文件,如果已存在不覆盖}}}}}/// <summary> /// 分卷数据单位 /// </summary> public enum ZipDataUnit{/// <summary> /// 1024字节 /// </summary> KB = 1024,/// <summary> /// 1024 * 1024字节 /// </summary> MB = 1024 * 1024,/// <summary> /// 1024 * 1024 * 1024字节 /// </summary> GB = 1024 * 1024 * 1024}

使用Ionic.Zip压缩、分卷压缩、解压文件相关推荐

  1. java zip malformed_关于Java解压文件的一些坑及经验分享(MALFORMED异常)

    关于Java解压文件的一些坑及经验分享 就在本周, 测试人员找到我说现上的需求文档(zip格式的)无法预览了, 让我帮忙看看怎么回事. 这个功能也并不是我做的, 于是我便先看看线上日志有没有什么错误, ...

  2. zip分卷压缩的步骤_linux下分卷压缩,合并解压的3种方法

    我们上传东西的时候,由于文件过大而不能上传,或者不给上传,最明显的就是发邮件了,附件最大5M,有的10M.如果超过了就郁闷了.这个时候,如果能把压缩的东西,分割开来就比较爽了,windows下面我想大 ...

  3. Linux zip进行分卷压缩, unzip 进行多卷组合并解压

    一.Linux zip 分卷压缩: 1.先把源文件压缩个成zip zip -r b.zip a.mp4 2.根据情况分卷,比如我这里最大40MB: zip -s 40m b.zip --out c.z ...

  4. 解压报错 你需要从上一压缩卷启动解压命令以便解压 解决方案及WinRAR怎么分卷压缩详解

    一.解决方案: 1.问题描述: 解压的时候报错,提示"你需要从上一压缩卷启动解压命令以便解压" 2.解决: 会出现这个问题,是因为你正在解压的文件为分卷压缩生成的压缩包.首先你要确 ...

  5. zip包怎么解压oracle,使用jar与zip压缩解压文件的区别

    使用jar命令压缩和解压文件不会继承原来的权限,切记! 而使用zip/unzip压缩解压文件则会保留文件原来的权限等信息,因此使用压缩解压的时候尽量使用专业的工具 下面是测试内容和结果: 1.首先确认 ...

  6. android zip解压出错,常见的压缩解压文件出错解决办法

    您是否遇到过精力了好久下回来的压缩吧,结果在解压过程中出现错误的情况呢?比如说此解压失败或压缩文件文件已经损坏?导致解压文件失败.如果遇到这种问题,那就试试常见的压缩解压文件出错解决办法吧.凡事求人不 ...

  7. 怎么使用7zip进行分批压缩_Win7系统如何让文件进行分卷压缩?分卷压缩包解压的方法...

    我们网络环境中必然需要各类数据传输,如果数据过多,在接收的时候就比较困难,然而一个叫压缩软件的应用解决了这个问题.但随之而来的另一个问题,如果压缩文件过大,传输速度就很慢,可以分卷进行传输吗?当然是可 ...

  8. Linux之zip加密压缩与解密解压(一百二十一)

    Linux之zip加密压缩与解密解压 1.zip加密压缩目录 # zip -rP Abc#123 tmp.zip test/2.unzip解密解压缩 # unzip -P Abc#123 tmp.zi ...

  9. 下载c语言软件后怎么解压,手机怎么解压文件 盘点常用手机压缩打包解压文件应用...

    手机现在是我们必不可少的工具,在下载应用的时候,众多网站已经把安装文件独立好了等我们去下载,但是如果你要把文件打包或者下载了网络上已经被打包压缩好的文件需要解压缩的时候,就会觉得很麻烦了,手机上可没有 ...

最新文章

  1. ChainBuilder Connect SOA平台解决方案的案例研究
  2. 【3】C++语法与数据结构之MFC_CList学生管理系统_链表外排序_函数指针
  3. 子元素的margin-top会影响父元素
  4. OpenGL画简单图形
  5. jQuery的实现原理和核心
  6. 【JAVA SE】第九章 接口
  7. ios 隔空投安装ipa_iOS 安装自己服务器上的IPA包
  8. rocketmq4.x快速入门指南
  9. svn拉取文件失败_转自: linux svn命令行无法拉取中文名称的文件
  10. ld: warning: cannot find entry symbol _start; defaulting to 00000000080481d8
  11. Mybatis 项目开发实际常用SQL笔记总结
  12. 使用欧元符号€作为hive表的分割符
  13. 巴菲特和盖茨的顶级对话:实现财富自由 没有那么难
  14. matlab心线代码,matlab心形线
  15. LEFT()与RIGHT()函数
  16. 霖呆呆的近期面试128题汇总(含超详细答案)
  17. prometheus监控zookeeper
  18. Ubuntu装系统后重启卡死解决办法(超详细)
  19. Spark 性能常规性能调优广播大变量_大数据培训
  20. Windows Server 2008 R2安装openSSH服务

热门文章

  1. MyBatis一对多关系映射
  2. 普通打印机,双面打印技巧
  3. 网络编程的TCP和UDP实现(Python)
  4. HTTP 405 错误 – 方法不被允许 (Method not allowed)【转载】
  5. 论文阅读笔记:A Network-based End-to-End Trainable Task-oriented Dialogue System
  6. input输入邮箱使用正则限制正确格式的邮箱地址
  7. 希尔顿携手飞猪拓宽双方会员生态体系
  8. mac 安装软件 显示信任任何来源
  9. Security+新版601考过啦,分享我的备考经验
  10. 统计200~1000之间能被7整除数的个数。