/// <summary> /// Extract the updater from the downloaded zip /// </summary> private void ExtractUpdater() { var files = new DirectoryInfo(InstallDirectory).GetFiles(); foreach (var file in files) { if (!file.Name.ToLower().Contains(UpdatedZipName.ToLower())) { continue; } using (ZipArchive archive = ZipFile.OpenRead(file.FullName)) { foreach (ZipArchiveEntry entry in archive.Entries) { string destinationPath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, entry.FullName)); if (destinationPath.StartsWith(Environment.CurrentDirectory, StringComparison.Ordinal)) { if (new FileInfo(destinationPath).Name != "Updater.exe") { continue; } if (File.Exists(destinationPath)) { File.Delete(destinationPath); } entry.ExtractToFile(destinationPath); Logger.Log($"Extracting file: {destinationPath}"); } } } } }
/// <summary> /// Extract the updater from the downloaded zip /// </summary> private void ExtractUpdater() { var files = Directory.GetFiles(InstallDirectory); foreach (var file in files) { if (!file.EndsWith(".zip") && !file.EndsWith(".rar") && !file.EndsWith(".7z")) { continue; } if (!file.ToLower().Contains(UpdatedZipName.ToLower())) { continue; } Zip z = new Zip(file); z.Extract(InstallDirectory, Ionic.Zip.ExtractExistingFileAction.OverwriteSilently); /*Zip z = new Zip(file); * z.Extract(InstallDirectory, Ionic.Zip.ExtractExistingFileAction.OverwriteSilently); * * if (DeleteDownloadZip) * { * if (File.Exists(InstallDirectory + "\\" + UpdatedZipName)) * File.Delete(InstallDirectory + "\\" + UpdatedZipName); * }*/ /*using (ZipArchive archive = System.IO.Compression.ZipFile.OpenRead(file)) * { * foreach (ZipArchiveEntry entry in archive.Entries) * { * //if (!entry.FullName.ToLower().Contains("update")) *//*if (!entry.FullName.ToLower().Contains(UpdatedZipName)) * continue;*//* * * string destinationPath = Path.GetFullPath(Path.Combine(InstallDirectory, entry.FullName)); * if (destinationPath.StartsWith(InstallDirectory, StringComparison.Ordinal)) * { * if (File.Exists(destinationPath)) * File.Delete(destinationPath); * * entry.ExtractToFile(destinationPath, true); * } * } * }*/ } }
/// <summary> /// Delete all files related to updater. Used to keep program directory clean /// </summary> public void DeleteUpdater() { if (File.Exists(InstallDirectory + "\\" + UpdaterExeName)) { File.Delete(InstallDirectory + "\\" + UpdaterExeName); } var files = Directory.GetFiles(InstallDirectory); foreach (var file in files) { FileInfo f = new FileInfo(file); if (f.Name.ToLower().Replace(".", "").Replace(" ", "") == UpdatedZipName.ToLower().Replace(".", "").Replace(" ", "")) { File.Delete(file); break; } } }
/// <summary> /// Delete all files related to updater. Used to keep program directory clean /// </summary> private void DeleteUpdater() { if (File.Exists(Environment.CurrentDirectory + "\\" + UpdaterExeName)) { File.Delete(Environment.CurrentDirectory + "\\" + UpdaterExeName); } var files = Directory.GetFiles(Environment.CurrentDirectory); foreach (var file in files) { FileInfo f = new FileInfo(file); if (f.Name.ToLower().Replace(".", "").Replace(" ", "") == UpdatedZipName.ToLower().Replace(".", "").Replace(" ", "")) { File.Delete(file); break; } } }