From 6a2799f5f67c5a399aea2426797482077ef3cf52 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 07 九月 2018 14:02:02 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/AssetVersion/RemoteFile.cs | 1001 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 507 insertions(+), 494 deletions(-)

diff --git a/System/AssetVersion/RemoteFile.cs b/System/AssetVersion/RemoteFile.cs
index ecabda0..5c3638a 100644
--- a/System/AssetVersion/RemoteFile.cs
+++ b/System/AssetVersion/RemoteFile.cs
@@ -1,60 +1,67 @@
-锘�//#define UseWebClient
-
-using UnityEngine;
-using System.Collections;
-using System.Net;
-using System.IO;
-using System.ComponentModel;
-using System;
-using System.Threading;
-
+锘�//#define UseWebClient
+
+using UnityEngine;
+using System.Collections;
+using System.Net;
+using System.IO;
+using System.ComponentModel;
+using System;
+using System.Threading;
+
 public class RemoteFile
 {
-    static bool m_ProcessErroring = false;
-    public static bool processErroring {
+    static bool m_ProcessErroring = false;
+    public static bool processErroring
+    {
         get { return m_ProcessErroring; }
-    }
-
-    public static int maxDownLoadTask = 48;
-    public static int MaxConnectLimit = 48;
-    static int gDownloadIsRunningCount;
-    public static int DownloadIsRunningCount {
-        get { return gDownloadIsRunningCount; }
-    }
-
-    public static int gStartTickcount = 0;
-    static long gTotalDownloadSize = 0L;  //宸蹭笅杞界殑瀛楄妭鏁�
-    static object lockObj = new object();
-    public static long TotalDownloadedSize {
-        get {
-            return System.Threading.Interlocked.Read(ref gTotalDownloadSize);
-        }
-        set {
+    }
+
+    public static int maxDownLoadTask = 48;
+    public static int MaxConnectLimit = 48;
+    static int gDownloadIsRunningCount;
+    public static int DownloadIsRunningCount
+    {
+        get { return gDownloadIsRunningCount; }
+    }
+
+    public static int gStartTickcount = 0;
+    static long gTotalDownloadSize = 0L;  //宸蹭笅杞界殑瀛楄妭鏁�
+    static object lockObj = new object();
+    public static long TotalDownloadedSize
+    {
+        get
+        {
+            return System.Threading.Interlocked.Read(ref gTotalDownloadSize);
+        }
+        set
+        {
             gTotalDownloadSize = value;
-        }
-    }
-
-    static float downloadSpeedRef = 0f; //瀛楄妭/绉�
-    static long downloadSizeRef = 0L;
-
-    public static string DownloadSpeed {
-        get {
-            float speed = downloadSpeedRef;
+        }
+    }
+
+    static float downloadSpeedRef = 0f; //瀛楄妭/绉�
+    static long downloadSizeRef = 0L;
+
+    public static string DownloadSpeed
+    {
+        get
+        {
+            float speed = downloadSpeedRef;
             if (RemoteFile.gStartTickcount != 0)
-            {
-                float second = Mathf.Abs(System.Environment.TickCount - RemoteFile.gStartTickcount) / 1000f;
+            {
+                float second = Mathf.Abs(System.Environment.TickCount - RemoteFile.gStartTickcount) / 1000f;
                 if (second > 1f || (downloadSpeedRef <= 0.1f && TotalDownloadedSize > 0))
-                {
+                {
                     if (second > 0f)
-                    {
-                        var delta = TotalDownloadedSize - downloadSizeRef;
+                    {
+                        var delta = TotalDownloadedSize - downloadSizeRef;
                         downloadSizeRef = TotalDownloadedSize;
 
                         speed = (delta / second + downloadSpeedRef) * 0.5f;
                         downloadSpeedRef = speed;
                         RemoteFile.gStartTickcount = System.Environment.TickCount;
-                    }
-                }
+                    }
+                }
             }
 
             if (speed > 1048576f)
@@ -68,23 +75,23 @@
             else
             {
                 return StringUtility.Contact(speed.ToString("f1"), " B/S");
-            }
-        }
-    }
-
-    public AssetVersion assetVersion { get; private set; }
-    protected string mRemoteFile;
-    protected string localFile;
-    bool speedLimit = false;
-
-    protected string mLocalFileTemp; //涓存椂鏂囦欢
-
-    protected System.DateTime mRemoteLastModified;
-    protected System.DateTime mLocalLastModified;
-    protected long mRemoteFileSize = 0;
-    public static long TotalRemoteFileSize = 0L;
-
-    const int bufferSize = 8192;
+            }
+        }
+    }
+
+    public AssetVersion assetVersion { get; private set; }
+    protected string mRemoteFile;
+    protected string localFile;
+    bool speedLimit = false;
+
+    protected string mLocalFileTemp; //涓存椂鏂囦欢
+
+    protected System.DateTime mRemoteLastModified;
+    protected System.DateTime mLocalLastModified;
+    protected long mRemoteFileSize = 0;
+    public static long TotalRemoteFileSize = 0L;
+
+    const int bufferSize = 8192;
     byte[] buff;
 
     HttpWebRequest headRequest;
@@ -94,15 +101,18 @@
 
     Action<bool, AssetVersion> onCompleted;
 
-    protected bool mHadError = false;
-    public bool HaveError {
-        get { return mHadError; }
-    }
-
-    bool m_Done = false;
-    public bool done {
-        get { return m_Done; }
-        private set {
+    protected bool mHadError = false;
+    public bool HaveError
+    {
+        get { return mHadError; }
+    }
+
+    bool m_Done = false;
+    public bool done
+    {
+        get { return m_Done; }
+        private set
+        {
             m_Done = value;
             if (value)
             {
@@ -113,14 +123,14 @@
                     onCompleted = null;
                 }
             }
-        }
-    }
-
-    State state = State.Wait;
-
-    int read_Stream_startTickcount = 0; //璇锋眰鎿嶄綔寮�濮�,鐢ㄤ簬瓒呮椂鍒ゆ柇
-    int timeOut = 5000; //瓒呮椂鏃堕棿
-
+        }
+    }
+
+    State state = State.Wait;
+
+    int read_Stream_startTickcount = 0; //璇锋眰鎿嶄綔寮�濮�,鐢ㄤ簬瓒呮椂鍒ゆ柇
+    int timeOut = 5000; //瓒呮椂鏃堕棿
+
     public static void Prepare()
     {
         gDownloadIsRunningCount = 0;
@@ -128,16 +138,16 @@
         TotalDownloadedSize = 0L;
         downloadSpeedRef = 0f;
         downloadSizeRef = 0L;
-    }
-
+    }
+
     public void Init(string remoteFile, string _localFile, AssetVersion _assetVersion, bool _speedLimit = false)
     {
-        mRemoteFile = remoteFile;
-        localFile = _localFile;
-        assetVersion = _assetVersion;
-        this.speedLimit = _speedLimit;
-    }
-
+        mRemoteFile = remoteFile;
+        localFile = _localFile;
+        assetVersion = _assetVersion;
+        this.speedLimit = _speedLimit;
+    }
+
     public void Begin(Action<bool, AssetVersion> _onCompleted)
     {
         onCompleted = _onCompleted;
@@ -206,7 +216,7 @@
                 gDownloadIsRunningCount--;
             }
         }
-    }
+    }
 
     private void OnDispose()
     {
@@ -214,18 +224,18 @@
     }
 
     void MakeSureDirectory(string filePath)
-    {
-        string dir = Path.GetDirectoryName(filePath);
+    {
+        string dir = Path.GetDirectoryName(filePath);
         if (!Directory.Exists(dir))
         {
             Directory.CreateDirectory(dir);
-        }
-    }
-
+        }
+    }
+
     bool Move(string sourceFile, string destFile)
-    {
-        bool ret = true;
-#if !UNITY_WEBPLAYER
+    {
+        bool ret = true;
+#if !UNITY_WEBPLAYER
         try
         {
             if (speedLimit)
@@ -239,20 +249,20 @@
             {
                 File.Move(sourceFile, destFile);
             }
-        }
+        }
         catch (Exception ex)
         {
-            DebugEx.LogError(ex.Message);
-            ret = false;
-        }
-#endif
-        return ret;
+            DebugEx.LogError(ex.Message);
+            ret = false;
+        }
+#endif
+        return ret;
     }
 
     IEnumerator Co_DownloadRemoteFile()
     {
         done = false;
-
+
         while (gDownloadIsRunningCount >= maxDownLoadTask)
         {
             if (stop)
@@ -261,8 +271,8 @@
             }
             //瓒呰繃鏈�澶т换鍔℃暟鏃�,鍏堢瓑寰�
             yield return null;
-        }
-
+        }
+
         while (assetVersion != null && assetVersion.extersion == ".manifest" && !AssetVersionUtility.GetAssetVersion(assetVersion.relativePath.Replace(".manifest", "")).localValid)
         {
             if (stop)
@@ -270,165 +280,165 @@
                 yield break;
             }
             yield return null;
-        }
-
-        state = State.Working;
-
-        gDownloadIsRunningCount++;
-        mHadError = false;
-        fileWriteState = FileWriteState.None;
-        mLocalFileTemp = localFile + ".tmp";  //鍏堜笅杞戒负涓存椂鏂囦欢
-
-        MakeSureDirectory(mLocalFileTemp);   //纭繚鏂囦欢鍐欏叆鐩綍瀛樺湪
-        mLocalLastModified = DateTime.MinValue;
-        long localFileSize = 0L;
-#if !UNITY_WEBPLAYER
+        }
+
+        state = State.Working;
+
+        gDownloadIsRunningCount++;
+        mHadError = false;
+        fileWriteState = FileWriteState.None;
+        mLocalFileTemp = localFile + ".tmp";  //鍏堜笅杞戒负涓存椂鏂囦欢
+
+        MakeSureDirectory(mLocalFileTemp);   //纭繚鏂囦欢鍐欏叆鐩綍瀛樺湪
+        mLocalLastModified = DateTime.MinValue;
+        long localFileSize = 0L;
+#if !UNITY_WEBPLAYER
         mLocalLastModified = File.GetLastWriteTime(mLocalFileTemp);
-#endif
-        headRequest = (HttpWebRequest)System.Net.WebRequest.Create(mRemoteFile);
+#endif
+        headRequest = (HttpWebRequest)System.Net.WebRequest.Create(mRemoteFile);
         if (headRequest.ServicePoint.ConnectionLimit < RemoteFile.MaxConnectLimit)
-        {
-            headRequest.ServicePoint.ConnectionLimit = RemoteFile.MaxConnectLimit;
-        }
-        headRequest.Method = "HEAD"; // Only the header info, not full file!
-        headRequest.ServicePoint.Expect100Continue = false;
-        headRequest.Timeout = 3000;
-        headRequest.Proxy = null;
-        headRequest.KeepAlive = false;
-        bool isAcceptRange = true;
-        bool headRequestOk = false; //鏄惁鏀寔鏂偣缁紶
-
-        int tick1 = 0;
+        {
+            headRequest.ServicePoint.ConnectionLimit = RemoteFile.MaxConnectLimit;
+        }
+        headRequest.Method = "HEAD"; // Only the header info, not full file!
+        headRequest.ServicePoint.Expect100Continue = false;
+        headRequest.Timeout = 3000;
+        headRequest.Proxy = null;
+        headRequest.KeepAlive = false;
+        bool isAcceptRange = true;
+        bool headRequestOk = false; //鏄惁鏀寔鏂偣缁紶
+
+        int tick1 = 0;
         try
-        {
-            headRequest.BeginGetResponse( //鏀逛负寮傛鐨勬柟娉�
+        {
+            headRequest.BeginGetResponse( //鏀逛负寮傛鐨勬柟娉�
                 (x) =>
-                {
+                {
                     try
-                    {
-                        headResponse = (x.AsyncState as HttpWebRequest).EndGetResponse(x) as HttpWebResponse;
-                        mRemoteLastModified = headResponse.LastModified;
-                        mRemoteFileSize = headResponse.ContentLength;
+                    {
+                        headResponse = (x.AsyncState as HttpWebRequest).EndGetResponse(x) as HttpWebResponse;
+                        mRemoteLastModified = headResponse.LastModified;
+                        mRemoteFileSize = headResponse.ContentLength;
                         if (headResponse.Headers["Accept-Ranges"] != null)
-                        {
-                            string s = headResponse.Headers["Accept-Ranges"];
+                        {
+                            string s = headResponse.Headers["Accept-Ranges"];
                             if (s == "none")
-                            {
-                                isAcceptRange = false;
-                            }
-                        }
-                        System.Threading.Interlocked.Add(ref RemoteFile.TotalRemoteFileSize, mRemoteFileSize);
-                        headRequestOk = true;
-                    }
+                            {
+                                isAcceptRange = false;
+                            }
+                        }
+                        System.Threading.Interlocked.Add(ref RemoteFile.TotalRemoteFileSize, mRemoteFileSize);
+                        headRequestOk = true;
+                    }
                     catch (Exception ex)
-                    {
-                        DebugEx.LogWarning("ERROR: " + ex);
-                        mHadError = true;
-                    }
+                    {
+                        DebugEx.LogWarning("ERROR: " + ex);
+                        mHadError = true;
+                    }
                     finally
-                    {
+                    {
                         if (headResponse != null)
-                        {
-                            headResponse.Close();
-                            headResponse = null;
-                        }
+                        {
+                            headResponse.Close();
+                            headResponse = null;
+                        }
                         if (headRequest != null)
                         {
                             headRequest.Abort();
                             headRequest = null;
-                        }
-                    }
-
-                }, headRequest);
-            tick1 = System.Environment.TickCount;
-        }
+                        }
+                    }
+
+                }, headRequest);
+            tick1 = System.Environment.TickCount;
+        }
         catch (WebException webEx)
-        {
-            DebugEx.LogWarning("<color=red>Request File Head ERROR: " + mRemoteFile + "</color>");
-            DebugEx.LogWarning("ERROR: " + webEx);
-            mHadError = true;
-            gDownloadIsRunningCount--;
-            done = true;
-            yield break;
-        }
+        {
+            DebugEx.LogWarning("<color=red>Request File Head ERROR: " + mRemoteFile + "</color>");
+            DebugEx.LogWarning("ERROR: " + webEx);
+            mHadError = true;
+            gDownloadIsRunningCount--;
+            done = true;
+            yield break;
+        }
         catch (System.Exception e)
-        {
-            DebugEx.LogWarning("<color=red>Request File Head ERROR: " + mRemoteFile + "</color>");
-            DebugEx.LogWarning("ERROR: " + e);
-            mHadError = true;
-            gDownloadIsRunningCount--;
-            done = true;
-            yield break;
-        }
-
+        {
+            DebugEx.LogWarning("<color=red>Request File Head ERROR: " + mRemoteFile + "</color>");
+            DebugEx.LogWarning("ERROR: " + e);
+            mHadError = true;
+            gDownloadIsRunningCount--;
+            done = true;
+            yield break;
+        }
+
         while (!headRequestOk && !mHadError)
         {
             if (stop)
             {
                 yield break;
-            }
-
+            }
+
             if (processErroring)
-            {
-                mHadError = true;
-                break;
-            }
-            float dur = System.Environment.TickCount - tick1;
+            {
+                mHadError = true;
+                break;
+            }
+            float dur = System.Environment.TickCount - tick1;
             if (dur > timeOut)
-            {
-                DebugEx.LogWarningFormat("鑾峰彇杩滅▼鏂囦欢{0} 淇℃伅瓒呮椂!", mRemoteFile);
-                mHadError = true;
-                break;
-            }
-            yield return null;
-        }
+            {
+                DebugEx.LogWarningFormat("鑾峰彇杩滅▼鏂囦欢{0} 淇℃伅瓒呮椂!", mRemoteFile);
+                mHadError = true;
+                break;
+            }
+            yield return null;
+        }
         if (mHadError)
-        {
-            DebugEx.LogWarningFormat("鑾峰彇杩滅▼鏂囦欢{0} 淇℃伅澶辫触!", mRemoteFile);
+        {
+            DebugEx.LogWarningFormat("鑾峰彇杩滅▼鏂囦欢{0} 淇℃伅澶辫触!", mRemoteFile);
             if (headRequest != null)
             {
                 headRequest.Abort();
                 headRequest = null;
-            }
-
-            done = true;
-            gDownloadIsRunningCount--;
-            yield break;
-        }
-
-        //鍒ゆ柇鏄惁鏈夊凡缁忎笅杞介儴鍒嗙殑涓存椂鏂囦欢
+            }
+
+            done = true;
+            gDownloadIsRunningCount--;
+            yield break;
+        }
+
+        //鍒ゆ柇鏄惁鏈夊凡缁忎笅杞介儴鍒嗙殑涓存椂鏂囦欢
         if (File.Exists(mLocalFileTemp))
-        { // This will not work in web player!
-            //鍒ゆ柇鏄惁鏂偣缁紶, 渚濇嵁涓存椂鏂囦欢鏄惁瀛樺湪,浠ュ強淇敼鏃堕棿鏄惁灏忎簬鏈嶅姟鍣ㄦ枃浠舵椂闂�
-#if !UNITY_WEBPLAYER
-            localFileSize = (File.Exists(mLocalFileTemp)) ? (new FileInfo(mLocalFileTemp)).Length : 0L;
-#endif
-            bool outDated = IsOutdated;
+        { // This will not work in web player!
+            //鍒ゆ柇鏄惁鏂偣缁紶, 渚濇嵁涓存椂鏂囦欢鏄惁瀛樺湪,浠ュ強淇敼鏃堕棿鏄惁灏忎簬鏈嶅姟鍣ㄦ枃浠舵椂闂�
+#if !UNITY_WEBPLAYER
+            localFileSize = (File.Exists(mLocalFileTemp)) ? (new FileInfo(mLocalFileTemp)).Length : 0L;
+#endif
+            bool outDated = IsOutdated;
             if (localFileSize == mRemoteFileSize && !outDated)
-            {
-                gDownloadIsRunningCount--;
-                done = true;
-                mHadError = !Move(mLocalFileTemp, localFile);//鎶婁复鏃舵枃浠舵敼鍚嶄负姝e紡鏂囦欢
-                yield break; // We already have the file, early out
-            }
+            {
+                gDownloadIsRunningCount--;
+                mHadError = !Move(mLocalFileTemp, localFile);//鎶婁复鏃舵枃浠舵敼鍚嶄负姝e紡鏂囦欢
+                done = true;
+                yield break; // We already have the file, early out
+            }
             else if (localFileSize > mRemoteFileSize || outDated)
-            {
-                if (!outDated) DebugEx.LogWarning("Local file is larger than remote file, but not outdated. PANIC!");
+            {
+                if (!outDated) DebugEx.LogWarning("Local file is larger than remote file, but not outdated. PANIC!");
                 if (outDated)
-                {
-                    DebugEx.LogWarning(mLocalFileTemp + " Local file is outdated, deleting");
-                }
+                {
+                    DebugEx.LogWarning(mLocalFileTemp + " Local file is outdated, deleting");
+                }
                 try
-                {
-                    if (File.Exists(mLocalFileTemp))
-                        File.Delete(mLocalFileTemp);
-                }
+                {
+                    if (File.Exists(mLocalFileTemp))
+                        File.Delete(mLocalFileTemp);
+                }
                 catch (System.Exception e)
-                {
-                    DebugEx.LogWarning("<color=red>Could not delete local file</color>");
-                    DebugEx.LogError(e);
-                }
-
+                {
+                    DebugEx.LogWarning("<color=red>Could not delete local file</color>");
+                    DebugEx.LogError(e);
+                }
+
                 while (File.Exists(mLocalFileTemp))
                 {
                     if (stop)
@@ -436,31 +446,31 @@
                         yield break;
                     }
                     yield return null;
-                }
-
-                localFileSize = 0;
-            }
-        }
-
+                }
+
+                localFileSize = 0;
+            }
+        }
+
         if (mHadError)
-        {
-            gDownloadIsRunningCount--;
-            done = true;
-            yield break;
-        }
-
+        {
+            gDownloadIsRunningCount--;
+            done = true;
+            yield break;
+        }
+
         if (File.Exists(localFile))
-        {
+        {
             try
-            {
-                if (File.Exists(localFile))
-                    File.Delete(localFile);
-            }
+            {
+                if (File.Exists(localFile))
+                    File.Delete(localFile);
+            }
             catch (System.Exception e)
-            {
-                DebugEx.LogWarning("<color=red>Could not delete local file</color>");
-                DebugEx.LogWarning(e);
-            }
+            {
+                DebugEx.LogWarning("<color=red>Could not delete local file</color>");
+                DebugEx.LogWarning(e);
+            }
             while (File.Exists(localFile))
             {
                 if (stop)
@@ -468,241 +478,244 @@
                     yield break;
                 }
                 yield return null;
-            }
-        }
-
-#if UseWebClient //|| UNITY_IOS
-		using (WebClient client = new WebClient()) {
-			client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCompleted);
-			client.DownloadFileAsync(new Uri(mRemoteFile), mLocalFileTemp);
-		}
-		
-		while (!done) {
-			yield return null;
-        }
-        mHadError = !Move(mLocalFileTemp, localFile);//鎶婁复鏃舵枃浠舵敼鍚嶄负姝e紡鏂囦欢
-#else
+            }
+        }
+
+#if UseWebClient //|| UNITY_IOS
+		using (WebClient client = new WebClient()) {
+			client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCompleted);
+			client.DownloadFileAsync(new Uri(mRemoteFile), mLocalFileTemp);
+		}
+		
+		while (!done) {
+			yield return null;
+        }
+        mHadError = !Move(mLocalFileTemp, localFile);//鎶婁复鏃舵枃浠舵敼鍚嶄负姝e紡鏂囦欢
+#else
         try
-        {
-            fileRequest = (HttpWebRequest)HttpWebRequest.Create(mRemoteFile);
+        {
+            fileRequest = (HttpWebRequest)HttpWebRequest.Create(mRemoteFile);
             if (fileRequest.ServicePoint.ConnectionLimit < RemoteFile.MaxConnectLimit)
-            {
-                fileRequest.ServicePoint.ConnectionLimit = RemoteFile.MaxConnectLimit;
-            }
-            fileRequest.ServicePoint.Expect100Continue = false;
-            fileRequest.Timeout = 3000;
-            fileRequest.Proxy = null;
-            fileRequest.KeepAlive = false;
-
+            {
+                fileRequest.ServicePoint.ConnectionLimit = RemoteFile.MaxConnectLimit;
+            }
+            fileRequest.ServicePoint.Expect100Continue = false;
+            fileRequest.Timeout = 3000;
+            fileRequest.Proxy = null;
+            fileRequest.KeepAlive = false;
+
             if (localFileSize != 0L && isAcceptRange)
-            {
-                fileRequest.AddRange((int)localFileSize, (int)mRemoteFileSize - 1);
-            }
-#if !UNITY_WEBPLAYER
-            fileRequest.Method = WebRequestMethods.Http.Get;
-#endif
-            fileRequest.BeginGetResponse(AsynchCallback, fileRequest);
-            tick1 = System.Environment.TickCount;
-        }
+            {
+                fileRequest.AddRange((int)localFileSize, (int)mRemoteFileSize - 1);
+            }
+#if !UNITY_WEBPLAYER
+            fileRequest.Method = WebRequestMethods.Http.Get;
+#endif
+            fileRequest.BeginGetResponse(AsynchCallback, fileRequest);
+            tick1 = System.Environment.TickCount;
+        }
         catch (System.Exception ex)
-        {
-            DebugEx.LogWarning("BeginGetResponse exception: " + ex.Message);
-            DebugEx.LogWarning(ex);
+        {
+            DebugEx.LogWarning("BeginGetResponse exception: " + ex.Message);
+            DebugEx.LogWarning(ex);
             if (fileRequest != null)
-            {
-                fileRequest.Abort();
-                fileRequest = null;
-            }
-            mHadError = true;
-            done = true;
-            gDownloadIsRunningCount--;
-            yield break;
-        }
-
+            {
+                fileRequest.Abort();
+                fileRequest = null;
+            }
+            mHadError = true;
+            done = true;
+            gDownloadIsRunningCount--;
+            yield break;
+        }
+
         while (fileResponse == null && !mHadError)
         { // Wait for asynch to finish
 
             if (stop)
             {
                 yield break;
-            }
-
+            }
+
             if (processErroring)
-            {
-                mHadError = true;
-                break;
-            }
-            float dur = System.Environment.TickCount - tick1;
+            {
+                mHadError = true;
+                break;
+            }
+            float dur = System.Environment.TickCount - tick1;
             if (dur > timeOut)
-            {
-                DebugEx.LogWarningFormat("涓嬭浇杩滅▼鏂囦欢{0} 瓒呮椂!", mRemoteFile);
-                mHadError = true;
-                break;
-            }
-            yield return null;
-        }
-
+            {
+                DebugEx.LogWarningFormat("涓嬭浇杩滅▼鏂囦欢{0} 瓒呮椂!", mRemoteFile);
+                mHadError = true;
+                break;
+            }
+            yield return null;
+        }
+
         if (mHadError)
-        {
-            DebugEx.LogWarningFormat("[RemoteFile] 杩滅▼鏂囦欢{0} 涓嬭浇澶辫触! ", localFile);
+        {
+            DebugEx.LogWarningFormat("[RemoteFile] 杩滅▼鏂囦欢{0} 涓嬭浇澶辫触! ", localFile);
             if (fileRequest != null)
-            {
-                fileRequest.Abort();
-                fileRequest = null;
-            }
+            {
+                fileRequest.Abort();
+                fileRequest = null;
+            }
             if (fileResponse != null)
-            {
-                fileResponse.Close();
-                fileResponse = null;
-            }
-            done = true;
-            gDownloadIsRunningCount--;
-            yield break;
-        }
-
+            {
+                fileResponse.Close();
+                fileResponse = null;
+            }
+            done = true;
+            gDownloadIsRunningCount--;
+            yield break;
+        }
+
         try
-        {
-            inStream = fileResponse.GetResponseStream();
-            fs = new FileStream(mLocalFileTemp, (localFileSize > 0) ? FileMode.Append : FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
+        {
+            inStream = fileResponse.GetResponseStream();
+            fs = new FileStream(mLocalFileTemp, (localFileSize > 0) ? FileMode.Append : FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
             if (buff == null)
-            {
-                buff = new byte[bufferSize];
-            }
-            fileWriteState = FileWriteState.Writting;
-            inStream.BeginRead(buff, 0, bufferSize, ReadDataCallback, null);
-            read_Stream_startTickcount = System.Environment.TickCount;
-        }
+            {
+                buff = new byte[bufferSize];
+            }
+            fileWriteState = FileWriteState.Writting;
+            inStream.BeginRead(buff, 0, bufferSize, ReadDataCallback, null);
+            read_Stream_startTickcount = System.Environment.TickCount;
+        }
         catch (Exception ex)
-        {
-            DebugEx.LogWarning("<color=red>ERROR: " + mRemoteFile + "</color>");
-            DebugEx.LogWarning(ex);
+        {
+            DebugEx.LogWarning("<color=red>ERROR: " + mRemoteFile + "</color>");
+            DebugEx.LogWarning(ex);
             if (inStream != null)
-            {
-                inStream.Close();
-                inStream = null;
-            }
+            {
+                inStream.Close();
+                inStream = null;
+            }
             if (fs != null)
-            {
-                fs.Close();
-                fs = null;
-            }
+            {
+                fs.Close();
+                fs = null;
+            }
             if (fileResponse != null)
-            {
-                fileResponse.Close();
-                fileResponse = null;
-            }
-            mHadError = true;
-            fileWriteState = FileWriteState.Error;
-        }
-
+            {
+                fileResponse.Close();
+                fileResponse = null;
+            }
+            mHadError = true;
+            fileWriteState = FileWriteState.Error;
+        }
+
         while (fileWriteState == FileWriteState.Writting)
         {
             if (stop)
             {
                 yield break;
-            }
-
+            }
+
             if (processErroring)
-            {
-                fileWriteState = FileWriteState.Error;
-                break;
-            }
+            {
+                fileWriteState = FileWriteState.Error;
+                break;
+            }
             if (downloadSpeedRef == 0)
-            {
-                int dura = System.Environment.TickCount - read_Stream_startTickcount;
+            {
+                int dura = System.Environment.TickCount - read_Stream_startTickcount;
                 if (dura > timeOut)
-                {
-                    fileWriteState = FileWriteState.Timeout;
-                    DebugEx.LogWarningFormat("[RemoteFile] 杩滅▼鏂囦欢{0} 璇诲彇瓒呮椂{1}!", mRemoteFile, dura);
-                    break;
-                }
-            }
-
-            yield return null;
-        }
+                {
+                    fileWriteState = FileWriteState.Timeout;
+                    DebugEx.LogWarningFormat("[RemoteFile] 杩滅▼鏂囦欢{0} 璇诲彇瓒呮椂{1}!", mRemoteFile, dura);
+                    break;
+                }
+            }
+
+            yield return null;
+        }
+
         if (fileRequest != null)
-        {
-            fileRequest.Abort();
-            fileRequest = null;
-        }
+        {
+            fileRequest.Abort();
+            fileRequest = null;
+        }
         if (fileWriteState == FileWriteState.Error || fileWriteState == FileWriteState.Timeout)
-        {
-            DebugEx.LogWarningFormat("[RemoteFile] 杩滅▼鏂囦欢{0} 涓嬭浇澶辫触! ", localFile);
+        {
+            DebugEx.LogWarningFormat("[RemoteFile] 杩滅▼鏂囦欢{0} 涓嬭浇澶辫触! ", localFile);
             if (fileResponse != null)
-            {
-                fileResponse.Close();
-                fileResponse = null;
-            }
-            mHadError = true;
-            done = true;
-            gDownloadIsRunningCount--;
-            yield break;
-        }
+            {
+                fileResponse.Close();
+                fileResponse = null;
+            }
+
+            gDownloadIsRunningCount--;
+            mHadError = true;
+            done = true;
+            yield break;
+        }
+
         try
         {
-            FileInfo localTempFileInfo = new FileInfo(mLocalFileTemp);
+            FileInfo localTempFileInfo = new FileInfo(mLocalFileTemp);
             if (localTempFileInfo.Exists)
             { //涓存椂鏂囦欢瀛樺湪,闇�瑕佸垽鏂ぇ灏忔槸鍚︿竴鑷�
               //鍒ゆ柇涓存椂鏂囦欢鍜岃繙绋嬫枃浠秙ize鏄惁涓�鑷�
-#if !UNITY_WEBPLAYER
                 if (localTempFileInfo.Length != mRemoteFileSize && mRemoteFileSize != 0L)
-                {
-                    mHadError = true;
-                    DebugEx.LogError(string.Format(localFile + " 涓嬭浇瀹屾垚鍚�, 浣嗘槸澶у皬{0} 鍜岃繙绋嬫枃浠朵笉涓�鑷� {1}", localTempFileInfo.Length, mRemoteFileSize));
-                }
+                {
+                    mHadError = true;
+                    DebugEx.LogError(string.Format(localFile + " 涓嬭浇瀹屾垚鍚�, 浣嗘槸澶у皬{0} 鍜岃繙绋嬫枃浠朵笉涓�鑷� {1}", localTempFileInfo.Length, mRemoteFileSize));
+                }
                 else
-                {  //澶у皬涓�鑷� 
-                    mHadError = !Move(mLocalFileTemp, localFile);//鎶婁复鏃舵枃浠舵敼鍚嶄负姝e紡鏂囦欢
-                }
-                gDownloadIsRunningCount--;
-                done = true;
-#endif
-            }
+                {  //澶у皬涓�鑷� 
+                    mHadError = !Move(mLocalFileTemp, localFile);//鎶婁复鏃舵枃浠舵敼鍚嶄负姝e紡鏂囦欢
+                }
+            }
             else
-            { //涓存椂鏂囦欢涓嶅瓨鍦�
-                mHadError = true;
-                gDownloadIsRunningCount--;
-                done = true;
-            }
-#endif
-        }
+            { //涓存椂鏂囦欢涓嶅瓨鍦�
+                mHadError = true;
+            }
+#endif
+        }
         catch (Exception ex)
-        {
-            DebugEx.LogError(ex);
-            mHadError = true;
-        }
-    }
-
-    bool IsOutdated {
-        get {
-            if (File.Exists(mLocalFileTemp))
-                return mRemoteLastModified > mLocalLastModified;
-            return false;
-        }
-    }
-
+        {
+            DebugEx.LogError(ex);
+            mHadError = true;
+        }
+
+        yield return null;
+        gDownloadIsRunningCount--;
+        done = true;
+    }
+
+    bool IsOutdated
+    {
+        get
+        {
+            if (File.Exists(mLocalFileTemp))
+                return mRemoteLastModified > mLocalLastModified;
+            return false;
+        }
+    }
+
     enum FileWriteState
-    {
-        None,
-        Writting,
-        Completed,
-        Error,
-        Timeout,
-    }
-
-    Stream inStream;
-    FileStream fs;
-    FileWriteState fileWriteState = FileWriteState.None;  //涓嬭浇鏂囦欢鍐欏叆鐘舵��
-
+    {
+        None,
+        Writting,
+        Completed,
+        Error,
+        Timeout,
+    }
+
+    Stream inStream;
+    FileStream fs;
+    FileWriteState fileWriteState = FileWriteState.None;  //涓嬭浇鏂囦欢鍐欏叆鐘舵��
+
     void ReadDataCallback(IAsyncResult ar)
-    {
+    {
         if (stop)
         {
             return;
-        }
-
+        }
+
         try
-        {
+        {
             if (inStream != null)
             {
                 int read = inStream.EndRead(ar);
@@ -738,79 +751,79 @@
                     fileWriteState = FileWriteState.Completed;
                 }
             }
-        }
+        }
         catch (Exception ex)
-        {
+        {
             if (!processErroring)
-            {
-                DebugEx.LogWarning(ex);
-                DebugEx.LogWarning("ReadDataCallback 寮傚父淇℃伅: " + ex.Message);
-            }
+            {
+                DebugEx.LogWarning(ex);
+                DebugEx.LogWarning("ReadDataCallback 寮傚父淇℃伅: " + ex.Message);
+            }
             if (fs != null)
-            {
-                fs.Close();
-                fs = null;
-            }
+            {
+                fs.Close();
+                fs = null;
+            }
             if (inStream != null)
-            {
-                inStream.Close();
-                inStream = null;
-            }
-            fileWriteState = FileWriteState.Error;
-        }
-    }
-
+            {
+                inStream.Close();
+                inStream = null;
+            }
+            fileWriteState = FileWriteState.Error;
+        }
+    }
+
     void WriteDataCallBack(IAsyncResult _asyncResult)
     {
         fs.Flush();
         inStream.BeginRead(buff, 0, bufferSize, new AsyncCallback(ReadDataCallback), null);
         read_Stream_startTickcount = System.Environment.TickCount;
-    }
-
-#if UseWebClient //|| UNITY_IOS
-	protected void DownloadCompleted(System.Object sender, AsyncCompletedEventArgs e) {
-		done = true;
-	}
-#else
-    // Throwind an exception here will not propogate to unity!
+    }
+
+#if UseWebClient //|| UNITY_IOS
+	protected void DownloadCompleted(System.Object sender, AsyncCompletedEventArgs e) {
+		done = true;
+	}
+#else
+    // Throwind an exception here will not propogate to unity!
     protected void AsynchCallback(IAsyncResult result)
-    {
+    {
         try
-        {
+        {
             if (result == null)
-            {
-                DebugEx.LogError("Asynch result is null!");
-                mHadError = true;
-            }
-
-            HttpWebRequest webRequest = (HttpWebRequest)result.AsyncState;
+            {
+                DebugEx.LogError("Asynch result is null!");
+                mHadError = true;
+            }
+
+            HttpWebRequest webRequest = (HttpWebRequest)result.AsyncState;
             if (webRequest == null)
-            {
-                DebugEx.LogError("Could not cast to web request");
-                mHadError = true;
-            }
-
-            fileResponse = webRequest.EndGetResponse(result) as HttpWebResponse;
+            {
+                DebugEx.LogError("Could not cast to web request");
+                mHadError = true;
+            }
+
+            fileResponse = webRequest.EndGetResponse(result) as HttpWebResponse;
             if (fileResponse == null)
-            {
-                DebugEx.LogError("Asynch response is null!");
-                mHadError = true;
-            }
-        }
+            {
+                DebugEx.LogError("Asynch response is null!");
+                mHadError = true;
+            }
+        }
         catch (Exception ex)
-        {
-            mHadError = true;
-            DebugEx.LogWarning(ex);
-            DebugEx.LogWarning("[RemoteFile] AsynchCallback 寮傚父: " + ex.Message);
-        }
-    }
-#endif
-
+        {
+            mHadError = true;
+            DebugEx.LogWarning(ex);
+            DebugEx.LogWarning("[RemoteFile] AsynchCallback 寮傚父: " + ex.Message);
+        }
+    }
+#endif
+
     public enum State
     {
         Wait,
         Working,
         Stoped,
-    }
-}
-
+    }
+}
+

--
Gitblit v1.8.0