| | |
| | | public string SpeedFormat { get { return StringUtility.FormatSpeed(downloadedSpeed); } } |
| | | |
| | | //本地文件大小 |
| | | public long LocalLength { get { return (File.Exists(tempFile)) ? (new FileInfo(tempFile)).Length : 0L; } } |
| | | public long LocalLength { |
| | | get { |
| | | #if UNITY_WEBGL |
| | | return 0L; |
| | | #else |
| | | return (File.Exists(tempFile)) ? (new FileInfo(tempFile)).Length : 0L; |
| | | #endif |
| | | } |
| | | } |
| | | |
| | | //本地文件最后修改时间 |
| | | private System.DateTime LocalLastModified { get { return File.Exists(tempFile) ? File.GetLastWriteTime(tempFile) : DateTime.MinValue; } } |
| | | private System.DateTime LocalLastModified { |
| | | get { |
| | | #if UNITY_WEBGL |
| | | return DateTime.MinValue; |
| | | #else |
| | | return File.Exists(tempFile) ? File.GetLastWriteTime(tempFile) : DateTime.MinValue; |
| | | #endif |
| | | } |
| | | } |
| | | public bool IsWorking { get { return state == TaskState.Working; } } |
| | | public bool IsDone { get { return state == TaskState.Succeed; } } |
| | | |
| | |
| | | private bool IsOutdated //本地文件是否已过时 |
| | | { |
| | | get { |
| | | #if UNITY_WEBGL |
| | | return false; |
| | | #else |
| | | if (File.Exists(tempFile)) |
| | | return remoteLastModified > LocalLastModified; |
| | | return false; |
| | | #endif |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | public bool BeginDownload(Action<DownloadHotTask> onCompleted) |
| | | { |
| | | if ((IsWorking && requestHeaderOk) || IsDone)//已经在下载任务中或已经下载完成了 |
| | | #if UNITY_WEBGL |
| | | Debug.LogWarning("DownloadHotTask: 文件下载在WebGL上不支持"); |
| | | return false; |
| | | #else |
| | | if ((IsWorking && requestHeaderOk) || IsDone) |
| | | return false; |
| | | if (state == TaskState.Wait)//第一次尝试 |
| | | if (state == TaskState.Wait) |
| | | failedTimes = 0; |
| | | this.onCompleted = onCompleted; |
| | | this.isStop = false; |
| | | Co_DownloadFile().Forget(); |
| | | // SnxxzGame.Instance.StartCoroutine(Co_DownloadFile()); |
| | | return true; |
| | | #endif |
| | | } |
| | | |
| | | //停止下载 |
| | |
| | | |
| | | private async UniTask Move(string sourceFile, string destFile) |
| | | { |
| | | |
| | | var copyState = 0;//复制文件状态,0等待,1成功,2失败 |
| | | #if UNITY_WEBGL |
| | | SetFailed("WebGL不支持文件操作"); |
| | | await UniTask.CompletedTask; |
| | | return; |
| | | #else |
| | | var copyState = 0; |
| | | try |
| | | { |
| | | if (File.Exists(destFile)) |
| | |
| | | SetFailed("临时文件改名出错"); |
| | | |
| | | await UniTask.CompletedTask; |
| | | #endif |
| | | } |
| | | |
| | | } |