/// <summary>
        /// 下载文件
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="fileMode">Append为断点续传,Create为新建文件</param>
        /// <param name="remoteFileSize">Append模式下必传,远端文件大小</param>
        /// <param name="remoteLastModified">Append模式下必传,远端文件最后修改日期</param>
        /// <returns></returns>
        public static IEnumerator DownloadFile(string fileName, OnDownloadFileFinished onDownloadFileFinidhed,
                                               FileMode fileMode = FileMode.Create, long remoteFileSize = 0, DateTime remoteLastModified = new DateTime())
        {
            string url      = BaseDownloadingURL + fileName;
            string filePath = Path.Combine(AssetBundleUtility.LocalAssetBundlePath, fileName);

            using (UnityWebRequest request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET))
            {
                if (File.Exists(filePath) && fileMode == FileMode.Append)
                {
                    FileInfo localFileInfo = new FileInfo(filePath);
                    bool     isOutdate     = remoteLastModified > localFileInfo.LastWriteTime;
                    if (localFileInfo.Length == remoteFileSize && !isOutdate)//已下载完成
                    {
                        onDownloadFileFinidhed(fileName, null);
                        yield break;
                    }
                    if (localFileInfo.Length < remoteFileSize && !isOutdate)//继续下载
                    {
                        request.downloadHandler = new DownloadHandlerFile(filePath, FileMode.Append);
                        request.SetRequestHeader("Range", string.Format("bytes={0}-", localFileInfo.Length));
                    }
                    else//重新下载
                    {
                        request.downloadHandler = new DownloadHandlerFile(filePath);
                    }
                }
                else
                {
                    request.downloadHandler = new DownloadHandlerFile(filePath);
                }
                CurrentRequest = request;
                yield return(request.Send());

                string error = request.isError ?
                               string.Format("DownloadFile Failed - url: {0}, responseCode: {1}, error: {2}", url, request.responseCode, request.error)
                    : null;
                onDownloadFileFinidhed(fileName, error);
            }
            CurrentRequest = null;
        }
 /// <summary>
 /// 下载文件
 /// </summary>
 /// <param name="fileName"></param>
 /// <param name="fileMode">Append为断点续传,Create为新建文件</param>
 /// <param name="remoteFileSize">Append模式下必传,远端文件大小</param>
 /// <param name="remoteLastModified">Append模式下必传,远端文件最后修改日期</param>
 /// <returns></returns>
 public static IEnumerator DownloadFile(string fileName, OnDownloadFileFinished onDownloadFileFinidhed,
     FileMode fileMode = FileMode.Create, long remoteFileSize = 0, DateTime remoteLastModified = new DateTime())
 {
     string url = BaseDownloadingURL + fileName;
     string filePath = Path.Combine(AssetBundleUtility.LocalAssetBundlePath, fileName);
     using (UnityWebRequest request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET))
     {
         if (File.Exists(filePath) && fileMode == FileMode.Append)
         {
             FileInfo localFileInfo = new FileInfo(filePath);
             bool isOutdate = remoteLastModified > localFileInfo.LastWriteTime;
             if(localFileInfo.Length == remoteFileSize && !isOutdate)//已下载完成
             {
                 onDownloadFileFinidhed(fileName, null);
                 yield break;
             }
             if (localFileInfo.Length < remoteFileSize && !isOutdate)//继续下载
             {
                 request.downloadHandler = new DownloadHandlerFile(filePath, FileMode.Append);
                 request.SetRequestHeader("Range", string.Format("bytes={0}-", localFileInfo.Length));
             }
             else//重新下载
             {
                 request.downloadHandler = new DownloadHandlerFile(filePath);
             }
         }
         else
         {
             request.downloadHandler = new DownloadHandlerFile(filePath);
         }
         CurrentRequest = request;
         yield return request.Send();
         string error = request.isError ?
             string.Format("DownloadFile Failed - url: {0}, responseCode: {1}, error: {2}", url, request.responseCode, request.error)
             : null;
         onDownloadFileFinidhed(fileName, error);
     }
     CurrentRequest = null;
 }