zoukankan      html  css  js  c++  java
  • unity3d 关于断点下载和整个下载(用于更新)

        string t = "";

    //总体下载

        IEnumerator downfile(string urlstring LocalPath,UILabel DesLable)
        {
            Uri u = new Uri(url);
            HttpWebRequest mRequest = (HttpWebRequest)WebRequest.Create(u);
            mRequest.Method = "GET";
            mRequest.ContentType = "application/x-www-form-urlencoded";
            
            HttpWebResponse wr = (HttpWebResponse)mRequest.GetResponse();
            
            Stream sIn = wr.GetResponseStream();
            FileStream fs = new FileStream(LocalPathFileMode.CreateFileAccess.Write);
            
            long length = wr.ContentLength;
            long i = 0;
            decimal j = 0;
            
            while (i < length)
            {
                byte[] buffer = new byte[1024];
                i += sIn.Read(buffer0buffer.Length);
                fs.Write(buffer0buffer.Length);
                
                if ((i % 1024) == 0)
                {
                    j = Math.Round(Convert.ToDecimal((Convert.ToDouble(i) / Convert.ToDouble(length)) * 100), 4);
                    t"当前下载文件大小:" + length.ToString() + "字节 当前下载大小:" + i + "字节 下载进度" + j.ToString() + "%";
                    DesLable.text=t.ToString();
                }
                else
                {
                    t = "当前下载文件大小:" + length.ToString() + "字节 当前下载大小:" + i + "字节";
                    DesLable.text=t.ToString();
                }

                yield return false;
                
                
            }
            
            sIn.Close();
            wr.Close();
            fs.Close();
            

        }

        string downloadString="已经下载";

          //断点下载
        IEnumerator FPointDown(string uri,string saveFile,UILabel DesLable,UISprite LoadSprite)
        {
            //打开网络连接 
            System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(uri);
            System.Net.HttpWebRequest requestGetCount = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(uri);
            long countLength = requestGetCount.GetResponse().ContentLength;
            
            //打开上次下载的文件或新建文件 
            long lStartPos = 0;
            System.IO.FileStream fs;
            if (System.IO.File.Exists(saveFile))
            {
                fs = System.IO.File.OpenWrite(saveFile);
                lStartPos = fs.Length;
                if (countLength - lStartPos <= 0)
                {
                    fs.Close();
                    t = "已经";
                    DesLable.text=t.ToString();
                    yield break;
                }
                fs.Seek(lStartPosSystem.IO.SeekOrigin.Current); //移动文件流中的当前指针 
            }
            else
            {
                fs = new System.IO.FileStream(saveFileSystem.IO.FileMode.Create);
            }
            
            
            if (lStartPos > 0)
            {
                request.AddRange((int)lStartPos); //设置Range值
                print(lStartPos);
            }
            
            //向server请求。获得server回应数据流 
            System.IO.Stream ns = request.GetResponse().GetResponseStream();
            int len = 1024 * 8;
            
            byte[] nbytes = new byte[len];
            int nReadSize = 0;
            nReadSize = ns.Read(nbytes0len);
            while (nReadSize > 0)
            {
                fs.Write(nbytes0nReadSize);
                nReadSize = ns.Read(nbytes0len);
                t = downloadString+" : " + fs.Length / 1024 + "kb /" + countLength / 1024 + "kb"+"  ----  "+((double)fs.Length/countLength).ToString()+"%";
              
               
                yield return false;
            }
            ns.Close();
            fs.Close();
          //这里放更新安装代码,或者能够測试这个下载的包有没有出错,验证sha和md5
           
           
        }

  • 相关阅读:
    全排列问题(内测第0届第1题)
    提取字符串中的数字(C语言)
    尾递归=递归+迭代?
    Android各版本代号、版本号、API/NDK级别、发布时间及市场份额
    C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析
    sizeof既是关键字,又是运算符(操作符),但不是函数!
    探寻main函数的“标准”写法,以及获取main函数的参数、返回值
    Scala比较器:Ordered与Ordering
    【Python实战】Pandas:让你像写SQL一样做数据分析(一)
    【Python实战】Scrapy豌豆荚应用市场爬虫
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7026419.html
Copyright © 2011-2022 走看看