void ReleaseDesignerOutlets() { if (DownloadButton != null) { DownloadButton.Dispose(); DownloadButton = null; } if (DownloadProgressBar != null) { DownloadProgressBar.Dispose(); DownloadProgressBar = null; } if (IdLabel != null) { IdLabel.Dispose(); IdLabel = null; } if (NameLabel != null) { NameLabel.Dispose(); NameLabel = null; } if (SlotNameLabel != null) { SlotNameLabel.Dispose(); SlotNameLabel = null; } }
public static void StartDownload(string url, string path, string packagename = "") { ChocolateyDownloader downloader = new ChocolateyDownloader { PackageName = Utils.FirstCharToUpper(packagename) }; if (DownloadProgressBar == null) { DownloadProgressBar = new ProgressBar(1, "Downloading", DefaultStyle); } else { DownloadProgressBar.UpdateMaxTicks(DownloadProgressBar.MaxTicks + 1); } #region Events downloader.WebHandler.DownloadProgressChanged += delegate(object b, DownloadProgressChangedEventArgs e) { downloader.ProgressBar.CurrentTick = (int)e.BytesReceived; }; downloader.WebHandler.DownloadFileCompleted += delegate { downloader.ProgressBar.Dispose(); DownloadProgressBar.Tick(); NLogger.Info($"Sucessfully downloaded {downloader.PackageName}"); }; #endregion downloader.ProgressBar = DownloadProgressBar.Spawn(Utils.GetDownloadSize(url), Utils.FirstCharToUpper(packagename), DefaultStyle); downloader.WebHandler.DownloadFileAsync(new Uri(url), path); }
public static void WaitAndDispose() { while (DownloadProgressBar.CurrentTick < DownloadProgressBar.MaxTicks) { Thread.Sleep(20); } DownloadProgressBar.Dispose(); }
public void setProgress(int value) { if (value <= 100) { DownloadProgressBar.Invoke(new Action(() => DownloadProgressBar.Value = value)); LblDownloadProgress.Invoke(new Action(() => LblDownloadProgress.Text = totalByteDownloaded + " kb / " + fileSize + "kB")); } }
void AddProgressBarStep() { if (DownloadProgressBar.InvokeRequired) { ProgressBarAddCallback d = new ProgressBarAddCallback(AddProgressBarStep); Invoke(d, new object[] { }); } else { DownloadProgressBar.PerformStep(); } }
private void DownLoad_ShowProgress(bool isActive, float value, string msg) { DownloadProgressBar progress = DownloadProgressBar.Instance; if (progress) { if (isActive) { progress.Show(value, msg); } else { progress.Hide(); } } }
private static void StartUpdate(XmlDocument xmlContent) { string url = xmlContent.SelectSingleNode(@"/VersionInfo/Url/text()").Value; Version updaterVersion = new Version(xmlContent.SelectSingleNode(@"/VersionInfo/UpdaterVersion/text()").Value); string baseDir = $"{System.Environment.CurrentDirectory}\\"; taskFiles.Clear(); if (!File.Exists($"{baseDir}BFUpdater.exe") || CompareVersion(GetFileVersion($"{baseDir}BFUpdater.exe"), updaterVersion)) { DownloadFile(taskFiles, $"{baseUrl}BFUpdater.exe", baseDir); } DownloadFile(taskFiles, url, baseDir); downloadProgressBar = new DownloadProgressBar(taskFiles, "正在下載更新...", baseDir, true); downloadProgressBar.Closing += DownloadProgressBar_Closing; downloadProgressBar.ShowDialog(); }
internal async Task DownloadAsync(string directoryUrl, CancellationToken token) { var folder = await _driveServiceWrapper.GetDriveDirectoryAsync(directoryUrl, token); if (!folder.ContainsFiles) { return; } folder.LocalPath = Filesystem.CreateDirectory(folder.Name); ExceptAlreadyDownloadedFiles(folder); Parallel.ForEach(folder.Files, new ParallelOptions { MaxDegreeOfParallelism = _maxParallelDownloads }, (file) => { var resource = _driveServiceWrapper.GetDriveFile(file.Id); using var stream = Filesystem.CreateFile(file.Name, folder.LocalPath); using var downloadProgressBar = new DownloadProgressBar(file, resource.MediaDownloader); var result = resource.DownloadWithStatus(stream); }); }
public Text txtValue; //进度条 void Awake() { Instance = this; }
private void Client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) { StillDownloading = false; if (e.Error != null && IsVerifyHashOpen && !ForceStopScan) { redownloadErrorCount++; LogVerify.Downloaded("File: " + CurrentDownloadingFile); DiscordLauncherPresence.Status("Verify Bad", redownloadedCount + redownloadErrorCount + " out of " + currentCount); DownloadProgressText.SafeInvokeAction(() => DownloadProgressText.Text = "Failed To Download File [ " + redownloadedCount + redownloadErrorCount + " / " + currentCount + " ]:" + "\n" + CurrentDownloadingFile); DownloadProgressBar.SafeInvokeAction(() => DownloadProgressBar.Value = redownloadedCount + redownloadErrorCount * 100 / currentCount); LogVerify.Error("Download for [" + CurrentDownloadingFile + "] - " + (e.Error != null ? (string.IsNullOrWhiteSpace(e.Error.Message) ? e.Error.ToString() : e.Error.Message) : "No Exception Error Provided")); if (redownloadedCount + redownloadErrorCount == currentCount) { StartScanner.SafeInvokeAction(() => StartScanner.Visible = false); StopScanner.SafeInvokeAction(() => StopScanner.Visible = false); DownloadProgressText.SafeInvokeAction(() => DownloadProgressText.Text = "\n" + redownloadedCount + " Invalid/Missing File(s) were Redownloaded"); VerifyHashText.SafeInvokeAction(() => { VerifyHashText.ForeColor = Theming.WinFormWarningTextForeColor; VerifyHashText.Text = redownloadErrorCount + " Files Failed to Download. Check Log for Details"; }, this); DownloadErrorEncountered = true; GameScanner(false); } } else if (IsVerifyHashOpen && !ForceStopScan) { redownloadedCount++; DiscordLauncherPresence.Status("Verify Bad", redownloadedCount + " out of " + currentCount); LogVerify.Downloaded("File: " + CurrentDownloadingFile); DownloadProgressText.SafeInvokeAction(() => DownloadProgressText.Text = "Downloaded File [ " + redownloadedCount + " / " + currentCount + " ]:\n" + CurrentDownloadingFile); DownloadProgressBar.SafeInvokeAction(() => DownloadProgressBar.Value = redownloadedCount * 100 / currentCount); if (redownloadedCount == currentCount) { Integrity(); Log.Info("VERIFY HASH: Re-downloaded Count: " + redownloadedCount + " Current File Count: " + currentCount); DownloadProgressText.SafeInvokeAction(() => DownloadProgressText.Text = "\n" + redownloadedCount + " Invalid/Missing File(s) were downloaded"); VerifyHashText.SafeInvokeAction(() => { VerifyHashText.ForeColor = Theming.WinFormWarningTextForeColor; VerifyHashText.Text = "Yay! Scanning and Downloading\n is now completed on Gamefiles"; }, this); StartScanner.SafeInvokeAction(() => StartScanner.Visible = false); StopScanner.SafeInvokeAction(() => StopScanner.Visible = false); GameScanner(false); } else if (redownloadedCount + redownloadErrorCount == currentCount) { DownloadProgressText.SafeInvokeAction(() => DownloadProgressText.Text = "\n" + redownloadedCount + " Invalid/Missing File(s) were downloaded"); VerifyHashText.SafeInvokeAction(() => { VerifyHashText.ForeColor = Theming.WinFormWarningTextForeColor; VerifyHashText.Text = redownloadErrorCount + " Files Failed to Download. Check Log for Details"; }, this); StartScanner.SafeInvokeAction(() => StartScanner.Visible = false); StopScanner.SafeInvokeAction(() => StopScanner.Visible = false); DownloadErrorEncountered = true; GameScanner(false); } } else if (IsVerifyHashOpen && ForceStopScan) { Log.Info("VERIFY HASH: Download Process has Stopped"); DiscordLauncherPresence.Status("Verify Bad", redownloadedCount + " out of " + currentCount); DownloadProgressText.SafeInvokeAction(() => DownloadProgressText.Text = "Download Stopped on File [ " + redownloadedCount + " / " + currentCount + " ]:" + "\n" + CurrentDownloadingFile); DownloadProgressBar.SafeInvokeAction(() => DownloadProgressBar.Value = redownloadedCount * 100 / currentCount); LogVerify.Error("Download for [" + CurrentDownloadingFile + "] - has been Cancelled"); StartScanner.SafeInvokeAction(() => StartScanner.Visible = false); StopScanner.SafeInvokeAction(() => StopScanner.Visible = false); VerifyHashText.SafeInvokeAction(() => { VerifyHashText.Text = "Verify Hash Download Process has been Terminated"; }, this); } else if (ForceStopScan) { Log.Info("VERIFY HASH: Download Process has Stopped"); LogVerify.Error("Download for [" + CurrentDownloadingFile + "] - has been Cancelled"); } }
private void StartGameScanner() { DiscordLauncherPresence.Status("Verify Scan", null); Log.Info("VERIFY HASH: Checking and Deleting '.orig' Files and Symbolic Folders"); ScanProgressText.SafeInvokeAction(() => ScanProgressText.Text = "Removing any '.orig' Files in Game Directory"); /* START Show Warning Text */ VerifyHashText.SafeInvokeAction(() => { VerifyHashText.ForeColor = Theming.WinFormWarningTextForeColor; VerifyHashText.Text = "Warning:\nIf '.orig' Files Exist\nIt will be Removed Permanently"; }); /* END Show Warning Text */ try { DirectoryInfo InstallationDirectory = new DirectoryInfo(FileSettingsSave.GameInstallation); foreach (DirectoryInfo FoldersWeFound in InstallationDirectory.GetDirectories()) { if (!ForceStopScan) { foreach (FileInfo FoundFile in InstallationDirectory.EnumerateFiles("*.orig", SearchOption.AllDirectories)) { if (!ForceStopScan) { try { FoundFile.Delete(); LogVerify.Deleted("File: " + FoundFile.Name); } catch (Exception Error) { DeletionError++; LogVerify.Error("File: " + FoundFile.Name + " Error: " + Error.Message); LogVerify.ErrorIC("File: " + FoundFile.Name + " Error: " + Error.HResult); LogVerify.ErrorFR("File: " + FoundFile.Name + " Error: " + Error.ToString()); } } else { break; } } foreach (FileInfo FoundFile in FoldersWeFound.EnumerateFiles("*.orig", SearchOption.AllDirectories)) { if (!ForceStopScan) { try { FoundFile.Delete(); LogVerify.Deleted("File: " + FoundFile.Name); } catch (Exception Error) { DeletionError++; LogVerify.Error("File: " + FoundFile.Name + " Error: " + Error.Message); LogVerify.ErrorIC("File: " + FoundFile.Name + " Error: " + Error.HResult); LogVerify.ErrorFR("File: " + FoundFile.Name + " Error: " + Error.ToString()); } } else { break; } } foreach (DirectoryInfo FoundDirectory in InstallationDirectory.EnumerateDirectories()) { if (!ForceStopScan) { if (ModNetHandler.IsSymbolic(FoundDirectory.FullName)) { if (Directory.Exists(FoundDirectory.FullName)) { try { Directory.Delete(FoundDirectory.FullName, true); LogVerify.Deleted("Folder: " + FoundDirectory.Name); } catch (Exception Error) { DeletionError++; LogVerify.Error("Folder: " + FoundDirectory.Name + " Error: " + Error.Message); LogVerify.ErrorIC("Folder: " + FoundDirectory.Name + " Error: " + Error.HResult); LogVerify.ErrorFR("Folder: " + FoundDirectory.Name + " Error: " + Error.ToString()); } } else if (File.Exists(FoundDirectory.FullName)) { try { File.Delete(FoundDirectory.FullName); LogVerify.Deleted("File: " + FoundDirectory.Name); } catch (Exception Error) { DeletionError++; LogVerify.Error("File: " + FoundDirectory.Name + " Error: " + Error.Message); LogVerify.ErrorIC("File: " + FoundDirectory.Name + " Error: " + Error.HResult); LogVerify.ErrorFR("File: " + FoundDirectory.Name + " Error: " + Error.ToString()); } } } } else { break; } } foreach (DirectoryInfo FoundDirectory in FoldersWeFound.EnumerateDirectories()) { if (!ForceStopScan) { if (ModNetHandler.IsSymbolic(FoundDirectory.FullName)) { if (Directory.Exists(FoundDirectory.FullName)) { try { Directory.Delete(FoundDirectory.FullName, true); LogVerify.Deleted("Folder: " + FoundDirectory.Name); } catch (Exception Error) { DeletionError++; LogVerify.Error("Folder: " + FoundDirectory.Name + " Error: " + Error.Message); LogVerify.ErrorIC("Folder: " + FoundDirectory.Name + " Error: " + Error.HResult); LogVerify.ErrorFR("Folder: " + FoundDirectory.Name + " Error: " + Error.ToString()); } } else if (File.Exists(FoundDirectory.FullName)) { try { File.Delete(FoundDirectory.FullName); LogVerify.Deleted("File: " + FoundDirectory.Name); } catch (Exception Error) { DeletionError++; LogVerify.Error("File: " + FoundDirectory.Name + " Error: " + Error.Message); LogVerify.ErrorIC("File: " + FoundDirectory.Name + " Error: " + Error.HResult); LogVerify.ErrorFR("File: " + FoundDirectory.Name + " Error: " + Error.ToString()); } } } } else { break; } } } else { break; } } if (Directory.Exists(Path.Combine(FileSettingsSave.GameInstallation, "scripts")) && !ForceStopScan) { DirectoryInfo ScriptsFolder = new DirectoryInfo(Path.Combine(FileSettingsSave.GameInstallation, "scripts")); if (ScriptsFolder.EnumerateFiles().Count() > 1) { if (MessageBox.Show("Verify Hash has found files in the Scripts folder.\n" + "If you have installed custom Scripts or have not installed any Scripts" + "\n\nClick Yes, to Allow Deletion of Files" + "\nClick No, to Skip Deletion of Files", "VerifyHash", MessageBoxButtons.YesNo) == DialogResult.Yes) { foreach (FileInfo FoundFile in ScriptsFolder.EnumerateFiles()) { if (FoundFile.Name != "LangPicker.ini") { try { File.Delete(FoundFile.FullName); LogVerify.Deleted("File: " + FoundFile.Name); } catch (Exception Error) { DeletionError++; LogVerify.Error("File: " + FoundFile.Name + " Error: " + Error.Message); LogVerify.ErrorIC("File: " + FoundFile.Name + " Error: " + Error.HResult); LogVerify.ErrorFR("File: " + FoundFile.Name + " Error: " + Error.ToString()); } } } } } } } catch (Exception Error) { LogToFileAddons.OpenLog("VERIFY HASH", null, Error, null, true); } if (DeletionError != 0) { Log.Info("VERIFY HASH: Completed check for '.orig' Files and Symbolic Folders, BUT Encounterd a File or Folder Deletion Error. " + "Check Verify.log for More Details"); if (MessageBox.Show("Verify Hash has encountered File or Folder Deletion Errors.\n" + "Would you like to Open Verify.Log and Stop the Scanner?", "VerifyHash", MessageBoxButtons.YesNo) == DialogResult.Yes) { string LogFile = Strings.Encode(Locations.LogVerify); if (File.Exists(LogFile)) { Process.Start(LogFile); } StopScanner_Click(null, null); } } else { Log.Info("VERIFY HASH: Completed check for '.orig' Files and Symbolic Folders"); } if (!ForceStopScan) { try { FunctionStatus.IsVerifyHashDisabled = true; String[] getFilesToCheck = { }; if (File.Exists("checksums.dat") && EnableInsiderDeveloper.Allowed()) { /* Read Local checksums.dat */ getFilesToCheck = File.ReadAllLines("checksums.dat"); } else { /* Fetch and Read Remote checksums.dat */ ScanProgressText.SafeInvokeAction(() => ScanProgressText.Text = "Downloading Checksums File"); Uri URLCall = new Uri(FinalCDNURL + "/unpacked/checksums.dat"); ServicePointManager.FindServicePoint(URLCall).ConnectionLeaseTimeout = (int)TimeSpan.FromMinutes(1).TotalMilliseconds; var Client = new WebClient { Encoding = Encoding.UTF8 }; if (!WebCalls.Alternative()) { Client = new WebClientWithTimeout { Encoding = Encoding.UTF8 }; } else { Client.Headers.Add("user-agent", "SBRW Launcher " + Application.ProductVersion + " (+https://github.com/SoapBoxRaceWorld/GameLauncher_NFSW)"); } bool ErrorFree = true; try { getFilesToCheck = Client.DownloadString(URLCall).Split('\n'); } catch (Exception Error) { LogToFileAddons.OpenLog("VERIFY HASH CHECKSUMS", "Downloading of the Checksums File has Encountered an Error", Error, "Error", false); ErrorFree = false; } finally { if (Client != null) { Client.Dispose(); } } if (ErrorFree) { File.WriteAllLines("checksums.dat", getFilesToCheck); } else { StopScanner_Click(null, null); } } scannedHashes = new string[getFilesToCheck.Length][]; for (var i = 0; i < getFilesToCheck.Length; i++) { if (!ForceStopScan) { scannedHashes[i] = getFilesToCheck[i].Split(' '); } else { break; } } filesToScan = scannedHashes.Length; totalFilesScanned = 0; /* START Show Warning Text */ VerifyHashText.SafeInvokeAction(() => { VerifyHashText.ForeColor = Theming.WinFormWarningTextForeColor; VerifyHashText.Text = "Warning:\n Stopping the Scan before it is complete\nWill result in needing to start over!"; }); /* END Show Warning Text */ foreach (string[] file in scannedHashes) { if (!ForceStopScan) { String FileHash = file[0].Trim(); String FileName = file[1].Trim(); String RealPathToFile = FileSettingsSave.GameInstallation + FileName; if (!File.Exists(RealPathToFile)) { InvalidFileList.Add(FileName); LogVerify.Missing("File: " + FileName); } else { if (FileHash != SHA.Files(RealPathToFile).Trim()) { InvalidFileList.Add(FileName); LogVerify.Invalid("File: " + FileName); } else { LogVerify.Valid("File: " + FileName); } } totalFilesScanned++; ScanProgressText.SafeInvokeAction(() => ScanProgressText.Text = "Scanning Files: " + (totalFilesScanned * 100 / getFilesToCheck.Length) + "%"); ScanProgressBar.SafeInvokeAction(() => ScanProgressBar.Value = totalFilesScanned * 100 / getFilesToCheck.Length); } else { break; } } Log.Info("VERIFY HASH: Scan Completed"); if (!InvalidFileList.Any() || ForceStopScan) { StartScanner.SafeInvokeAction(() => StartScanner.Visible = false); StopScanner.SafeInvokeAction(() => StopScanner.Visible = false); ScanProgressText.SafeInvokeAction(() => ScanProgressText.Text = ForceStopScan ? "User Stopped Scan." : "Scan Complete. No Files Missing or Invalid!"); /* Hide the DownloadProgressBar as un-needed */ DownloadProgressBar.SafeInvokeAction(() => DownloadProgressBar.Visible = false); DownloadProgressText.SafeInvokeAction(() => DownloadProgressText.Visible = false); /* Update the player messaging that we're done */ VerifyHashText.SafeInvokeAction(() => { if (!ForceStopScan) { VerifyHashText.ForeColor = Theming.WinFormSuccessTextForeColor; } VerifyHashText.Text = ForceStopScan ? "Verify Hash Scan Process has been Terminated" : "Excellent News! There are ZERO\nmissing or invalid Gamefiles!"; }); Integrity(); GameScanner(false); } else { ScanProgressText.SafeInvokeAction(() => ScanProgressText.Text = "Found Invalid or Missing Files"); File.WriteAllLines("invalidfiles.dat", InvalidFileList); Log.Info("VERIFY HASH: Found Invalid or Missing Files and will Start File Downloader"); CorruptedFilesFound(); } } catch (Exception Error) { LogToFileAddons.OpenLog("VERIFY HASH", null, Error, null, true); } } }