[转]Unity-移动设备可用的压缩解压缩源码
原文:http://www.manew.com/thread-103250-1-1.html
最近在做客户端数据的分离,不希望对项目有什么影响,也不太想用AssetBundle,太麻烦,就在网上找了找开源的C#压缩算法,找来找去,发现不是不支持移动端,就是不能直接压缩文件夹,总之没有一个满意的方案,最后还是找了开源的ICSharpCode.SharpZipLib.Zip的源码,调试了一下修了修,让它支持了移动端,最终解决这个问题,本着开源的精神,发到这里,希望对大家有用
使用方法很简单,里面最外层有一个Util_Zip脚本,直接调用就行
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using UnityEngine; public class Util_DownloadZip : MonoBehaviour
{
public void DownloadTo(string url, string targetDirectory, Action<string> failedDel, Action completeDel)
{
StartCoroutine(DownloadURL(url, targetDirectory, failedDel, completeDel));
}
private IEnumerator DownloadURL(string url, string targetDirectory, Action<string> failedDel, Action completeDel)
{
WWW www = new WWW(url);
yield return www;
if (www.error == null)
{
try
{
Util_Zip.ExtractZip(new MemoryStream(www.bytes), targetDirectory);
if (completeDel != null)
{
completeDel();
}
}
catch (Exception ex)
{
if (failedDel != null)
{
failedDel("Util_Zip.ExtractZip error:" + ex.Message);
}
}
}
else
{
if (failedDel != null)
{
failedDel(www.error + "\r\n" + url);
}
}
}
}
调用的时候第一个参数传压缩包地址,第二个参数传解压缩的文件夹,我是传的Application.persistentDataPath,这个目录安卓iOS都可读写,第三四个参数是成功和失败的回调,可空。
压缩的接口直接传两个路径进去,就不用说了吧
Enjoy~
链接: https://pan.baidu.com/s/1jI9NRj4 密码: 6n3c
[转]Unity-移动设备可用的压缩解压缩源码的更多相关文章
- 分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
redhat: 下载:http://dev.mysql.com/downloads/mysql/ 选择5.6 source包 解压 cmake . -DCMAKE_INSTALL_PREFIX=/us ...
- (转)Linux设备驱动之HID驱动 源码分析
//Linux设备驱动之HID驱动 源码分析 http://blog.chinaunix.net/uid-20543183-id-1930836.html HID是Human Interface De ...
- 软件包管理_rpm命令管理_yum工具管理_文件归档压缩_源码包管理
rpm命令管理软件 对于挂载的像U盘那种都会在midea目录下,但是会显示在桌面上 安装软件(i:install,v:verbose冗长的,h:human):rpm -ivh xxxx.rpm 安 ...
- browserify压缩合并源码反编译
最近在学习钉钉(一个协作应用)桌面应用的前端源码时候,发现其js源码是用browserify做模块开发.于是想还原其源码的原本的目录结构,学习它的目录分类以及业务划分. 前言 用过browserify ...
- 使用微软企业库5.0提供的unity配置解藕系统demo(源码)
最近公司集50多号开发人员的人力围绕一个系统做开发,框架是免不了要统一的,公司提供的架构,利于分工合作,便于维护,扩展,升级,其中使用了到微软的企业库来解藕系统,只是因为框架封装,于是在网上学习了一个 ...
- (转)[原创]在ios android设备上使用 Protobuf (使用源码方式)
自:http://game.ceeger.com/forum/read.php?tid=13479 如果你的工程只能以.Net 2.0而不能以.Net 2.0 subset运行,请看另外一个方法. 地 ...
- Redis学习之ziplist压缩列表源码分析
一.压缩列表ziplist在redis中的应用 1.做列表键 当一个列表键只包含少量列表项,并且每个列表项要么是小整数,要么是短字符串,那么redis会使用压缩列表作为列表键的底层实现 2.哈希键 当 ...
- Linux设备驱动模型简述(源码剖析)
1. Linux设备驱动模型和sysfs文件系统 Linux内核在2.6版本中引入设备驱动模型,简化了驱动程序的编写.Linux设备驱动模型包含设备(device).总线(bus).类(class)和 ...
- 【游戏开发&Unity】捏脸系统(附源码)
本着“没有捏脸系统算什么RPG”的想法,着手做一个2d简易捏脸demo.其实换装游戏都差不多啦~ github代码地址:Simple-Character-Edit-System (Unity版本:5. ...
随机推荐
- Idea主题下载
http://www.riaway.com/ 将jar导入
- web前端效率提升之禁用缓存-遁地龙卷风
1.使用场景 我用的是Chrome,Ctrl+F5并不是在任何时候都能清楚缓存,这样很影响效率,下面的方式可以在开发者工具打开的使用禁止浏览器缓存任何资源, 还是出现不及时更新的情况,就要考虑服务器是 ...
- IIS7二级域名添加同一证书
IIS7二级域名添加同一证书, 先绑定第一个域名到443 ,之后的用以下命令行绑定 cd C:\Windows\System32\Inetsrv\appcmd set site /site.name: ...
- HDOJ 6508 Problem I. Spell Boost (01背包/DP)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6508 题目: Problem Description Shadowverse is a funny car ...
- mac配置go使用gopm下载第三方包
打开zshrc文件 vim ~/.zshrc 输入变量 export GOPATH="/Users/chennan/go" #这个自定义 export GOBIN=$GOPATH/ ...
- Django ---- 框架简介
MVC框架和MTV框架 mvc,全名是 Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Cont ...
- 爬取json Swaggerui界面
对一个静态的网页进行爬取. 要获取的内容分别为 paths 标签下的 1./quota/开头的路径 2. get 这样的httpmode 3 description对应的描述 4 summary 5 ...
- python学习记录20181220
1.pycharm中,有个快捷键,输入完成后 按Ctrl+Alt+L就可以自动添加空格
- BaiduMap路程计算
#BaiduMap路程计算def getDistance(deslat,deslng,originlat,originlng): url='http://api.map.baidu.com/direc ...
- bzoj 3697
题目描述:这里 发现还是点对之间的问题,于是还是上点分 只不过是怎么做的问题 首先对每条边边权给成1和-1(即把原来边权为0的边边权改为-1),那么合法的路径总权值一定为0! 还是将路径分为经过当前根 ...