/// <summary> /// 获取下载文件的大小和最后修改时间 /// </summary> /// <param name="url"></param> /// <param name="onGetRemoteFileInfo"></param> /// <returns></returns> public static IEnumerator GetRemoteFileInfo(string fileName, OnGetRemoteFileInfo onGetRemoteFileInfo) { string url = BaseDownloadingURL + fileName; using (UnityWebRequest request = UnityWebRequest.Head(url)) { yield return(request.Send()); if (request.isError) { string error = string.Format("GetRemoteFileInfo - url: {0}, responseCode: {1}, error: {2}", url, request.responseCode, request.error); onGetRemoteFileInfo(fileName, error, 0, DateTime.Now); yield break; } string strLength = request.GetResponseHeader("Content-Length"); if (string.IsNullOrEmpty(strLength)) { onGetRemoteFileInfo(fileName, "GetRemoteFileInfo - can not get Content-Length", 0, DateTime.Now); yield break; } long fileSize = Convert.ToInt64(strLength); string strDateTime = request.GetResponseHeader("Last-Modified"); if (string.IsNullOrEmpty(strDateTime)) { onGetRemoteFileInfo(fileName, "GetRemoteFileInfo - can not get Last-Modified", 0, DateTime.Now); yield break; } DateTime lastModified = DateTime.Parse(strDateTime); onGetRemoteFileInfo(fileName, null, fileSize, lastModified); } }
/// <summary> /// 获取下载文件的大小和最后修改时间 /// </summary> /// <param name="url"></param> /// <param name="onGetRemoteFileInfo"></param> /// <returns></returns> public static IEnumerator GetRemoteFileInfo(string fileName, OnGetRemoteFileInfo onGetRemoteFileInfo) { string url = BaseDownloadingURL + fileName; using (UnityWebRequest request = UnityWebRequest.Head(url)) { yield return request.Send(); if (request.isError) { string error = string.Format("GetRemoteFileInfo - url: {0}, responseCode: {1}, error: {2}", url, request.responseCode, request.error); onGetRemoteFileInfo(fileName, error, 0, DateTime.Now); yield break; } string strLength = request.GetResponseHeader("Content-Length"); if (string.IsNullOrEmpty(strLength)) { onGetRemoteFileInfo(fileName, "GetRemoteFileInfo - can not get Content-Length", 0, DateTime.Now); yield break; } long fileSize = Convert.ToInt64(strLength); string strDateTime = request.GetResponseHeader("Last-Modified"); if (string.IsNullOrEmpty(strDateTime)) { onGetRemoteFileInfo(fileName, "GetRemoteFileInfo - can not get Last-Modified", 0, DateTime.Now); yield break; } DateTime lastModified = DateTime.Parse(strDateTime); onGetRemoteFileInfo(fileName, null, fileSize, lastModified); } }