private void DownLoad(AutoUpdaterInfo info, bool redownLoad = false) { if (string.IsNullOrEmpty(info.DownloadUrl)) { OnCompletedCallBack("下载文件无效", false); return; } var filename = Path.GetFileName(info.DownloadUrl); var downloadFolder = CommonUnitity.GetDownLoadFolder(); var fullname = Path.Combine(downloadFolder, filename); var subFolderList = Directory.EnumerateDirectories(downloadFolder); foreach (var tempFolder in subFolderList) { Directory.Delete(tempFolder, true); } if (File.Exists(fullname)) { //如果已经存在该文件,且文件版本号和新文件版本号一致,那么直接跳过 if (redownLoad) { //要求重新下载 File.Delete(fullname); CommonUnitity.ClearFolder(downloadFolder); } else { //如果文件已经存在 if (DownloadProgressChanged != null) { DownloadProgressChanged(1, 1, 100); } Do(new DownloadUserToken() { Client = _webClient, FileName = fullname, ExcuteFileName = info.ExcuteFileName }); return; } } _webClient.DownloadFileCompleted += OnDownloadFileCompleted; _webClient.DownloadProgressChanged += OnDownloadProgressChanged; DownloadUserToken userToken = new DownloadUserToken() { Client = _webClient, FileName = fullname, ExcuteFileName = info.ExcuteFileName }; _webClient.DownloadFileAsync(new Uri(info.DownloadUrl), fullname, userToken); }
private string GetDownloadBinDirectory(List <string> autoupdaterFiles) { var downLoadFolder = CommonUnitity.GetDownLoadFolder(); //根据文件长度从小大大排序 autoupdaterFiles = autoupdaterFiles.OrderBy(x => x.Length).ToList(); foreach (var file in autoupdaterFiles) { var filename = Path.GetFileNameWithoutExtension(file); if (string.Equals(filename, "readme", StringComparison.OrdinalIgnoreCase) || string.Equals(filename, "说明", StringComparison.OrdinalIgnoreCase) ) { return(Path.GetDirectoryName(file)); } } return(downLoadFolder); }