unity ZIP压缩解压 Byte[]数据压缩解压

这篇博客整理了如何在Unity中使用ICSharpCode.SharpZipLib库进行ZIP文件的压缩和解压缩操作,特别适合需要处理Byte[]数据的场景。提供了库的下载链接,并指出可以通过其他方式获取最新版本。
摘要由CSDN通过智能技术生成

在网上看了一些相关资源,都比较散;为了方便以后查看,我就整理一下 记性比较差长时间不接触说不定就忘了 

我这给一个ICSharpCode.SharpZipLib的下载链接:https://pan.baidu.com/s/1o8QcYkq

朋友们也可以百度找最新的下载一个就行 

public class ZIP
{
    private static ZIP instance;
    public static ZIP Instance
    {
        get {
            if (instance == null)
                instance = new ZIP(); 
            return instance;
        }
    }


    // Use this for initialization  
    void Start()
    {


    }
    /// <summary>
    /// 解压zip
    /// </summary>
    /// <param name="path"></param>
    public void DecompressionZIP(string path, string dirPath, Action<bool> callback = null)
    {
        Main._instance.StartCoroutine(UnzipWithPath(path, dirPath, callback));
    }


    private int totalCount;
    private int doneCount;
    private int indicatorStep = 1;
    public IEnumerator UnzipWithPath(string path, string dirPath, Action<bool> callback = null)
    {
        //将codepage编码设置对应的字符编码
        ZipConstants.DefaultCodePage = Encoding.UTF8.CodePage;
        //这是根目录的路径  
        //ZipEntry:文件条目 就是该目录下所有的文件列表(也就是所有文件的路径)  
        ZipEntry zip = null;
        //输入的所有的文件流都是存储在这里面的  
        ZipInputStream zipInStream = null;
        //读取文件流到zipInputStream  
        zipInStream = new ZipInputStream(File.OpenRead(path));
        bool isError = false;
        while ((zip = zipInStream.GetNextEntry()) != null)
        {
            //Debug.Log("name is:" + zip.Name + " zipStream " + zipInStream);
            bool error = UnzipFile(zip, zipInStream, dirPath);
            if (error)
            {
                UIUtils.LogError("error:错误!!!!!!!!!");
                if (callbac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值