原文:http://www.manew.com/thread-103250-1-1.html

最近在做客户端数据的分离,不希望对项目有什么影响,也不太想用AssetBundle,太麻烦,就在网上找了找开源的C#压缩算法,找来找去,发现不是不支持移动端,就是不能直接压缩文件夹,总之没有一个满意的方案,最后还是找了开源的ICSharpCode.SharpZipLib.Zip的源码,调试了一下修了修,让它支持了移动端,最终解决这个问题,本着开源的精神,发到这里,希望对大家有用

使用方法很简单,里面最外层有一个Util_Zip脚本,直接调用就行

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.IO;
 5 using System.Linq;
 6 using System.Text;
 7 using UnityEngine;
 8
 9 public class Util_DownloadZip : MonoBehaviour
10 {
11         public void DownloadTo(string url, string targetDirectory, Action<string> failedDel, Action completeDel)
12         {
13                 StartCoroutine(DownloadURL(url, targetDirectory, failedDel, completeDel));
14         }
15         private IEnumerator DownloadURL(string url, string targetDirectory, Action<string> failedDel, Action completeDel)
16         {
17                 WWW www = new WWW(url);
18                 yield return www;
19                 if (www.error == null)
20                 {
21                         try
22                         {
23                                 Util_Zip.ExtractZip(new MemoryStream(www.bytes), targetDirectory);
24                                 if (completeDel != null)
25                                 {
26                                         completeDel();
27                                 }
28                         }
29                         catch (Exception ex)
30                         {
31                                 if (failedDel != null)
32                                 {
33                                         failedDel("Util_Zip.ExtractZip error:" + ex.Message);
34                                 }
35                         }
36                 }
37                 else
38                 {
39                         if (failedDel != null)
40                         {
41                                 failedDel(www.error + "\r\n" + url);
42                         }
43                 }
44         }
45 }

调用的时候第一个参数传压缩包地址,第二个参数传解压缩的文件夹,我是传的Application.persistentDataPath,这个目录安卓iOS都可读写,第三四个参数是成功和失败的回调,可空。

压缩的接口直接传两个路径进去,就不用说了吧

Enjoy~

链接: https://pan.baidu.com/s/1jI9NRj4 密码: 6n3c

转载于:https://www.cnblogs.com/happlifeZXM/p/6772559.html

[转]Unity-移动设备可用的压缩解压缩源码相关推荐

  1. 基于C#的压缩与解压缩源码

    压缩是一种通过特定的算法来减小计算机文件大小的机制.这种机制是一种很方便的发明,尤其是对网络用户,因为它可以减小文件的字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用 ...

  2. 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)

    部署环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 操作用户:root 系统IP:192.168.1.205 主机 ...

  3. (转)Linux设备驱动之HID驱动 源码分析

    //Linux设备驱动之HID驱动 源码分析 http://blog.chinaunix.net/uid-20543183-id-1930836.html HID是Human Interface De ...

  4. php实现ppt样式效果源码,jQuery移动端和桌面设备的轻量级幻灯片特效源码

    jQuery移动端和桌面设备的轻量级幻灯片特效源码是一款支持移动端和桌面设备的轻量级jQuery幻灯片插件swipeslider的特效.它支持图片和其它HTML内容,支持幻灯片内容无限循环播放.本代码 ...

  5. 基于JAVA设备配件管理和设备检修系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA设备配件管理和设备检修系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA设备配件管理和设备检修系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构 ...

  6. 计算机毕业设计Java中学后勤设备保修维护管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java中学后勤设备保修维护管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java中学后勤设备保修维护管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

  7. java毕业生设计高校设备采购审批管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计高校设备采购审批管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计高校设备采购审批管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构 ...

  8. java毕业设计分布式集群的设备维保系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计分布式集群的设备维保系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计分布式集群的设备维保系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: ...

  9. Unity一键图集生成工具,附源码 (基于NGUI和TexturePacker)

    https://blog.uwa4d.com/archives/NGUI_SplitChannels.html Unity一键图集生成工具,附源码 (基于NGUI和TexturePacker) 作者: ...

最新文章

  1. 程序员面对下列技术问题,如何做决策
  2. 软件项目开发流程及配置人员
  3. 17秋 软件工程 团队第五次作业 Alpha
  4. centos 6.5 安装 lamp 后mysql不能启动_CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境...
  5. java lombok
  6. 【机器学习】深入理解CatBoost
  7. 【NLP】NLP中的消歧
  8. 快速pow算法c语言_嵌入式必知基础算法(二)
  9. c语言中英文的作用,C语言中英文对照.doc
  10. Golang时间格式化
  11. 3. 机器学习中为什么需要梯度下降_机器学习中一些模型为什么要对数据归一化?...
  12. 学生_课程_成绩_教师50个常用sql
  13. Elasticsearch实践(二)linux安装
  14. js 给json添加新的字段,或者添加一组数据,在JS数组指定位置删除、插入、替换元素...
  15. 统计python文件中的代码,注释,空白对应的行数
  16. 算法面试题:均分纸牌
  17. 华为开通api服务_入冬第一场技术盛宴!DevRun开发者沙龙华为云武汉专场举办
  18. selenium下载和安装
  19. 计算机考研abc区划分,考研abc区有什么区别
  20. Eclipse CDT+Qemu调试Linux 0.11内核

热门文章

  1. python探测端口_python检测远程服务器tcp端口的方法
  2. CF--思维练习--CodeForces - 220C Little Elephant and Shifts (STL模拟)
  3. 数学--矩阵快速幂详解
  4. mapreduce简单的gzip压缩
  5. [多图/秒懂]白话OpenPose,最受欢迎的姿态估计网络
  6. 交叉熵(cross_entropy)作为损失函数在神经网络中的作用
  7. PCB设计过孔选用指导
  8. torque安装笔记
  9. 迷你5和迷你4区别_可变大小的视频迷你批处理
  10. 聊起 BigTable,让你不再胆怯