public static void ExtractZipFileToDirectory(string zipFilePath, string destinationFolder, GithubProduct product) { if (string.IsNullOrEmpty(zipFilePath) || string.IsNullOrEmpty(destinationFolder) || !Directory.Exists(destinationFolder) || !File.Exists(zipFilePath)) { return; } var tempFolder = Path.Combine(destinationFolder, "TempUnzipFolder"); Directory.CreateDirectory(tempFolder); System.IO.Compression.ZipFile.ExtractToDirectory(zipFilePath, tempFolder, true); switch (product) { case GithubProduct.Client: ExtractClient(tempFolder); break; case GithubProduct.Server: ExtractServer(tempFolder); break; default: throw new ArgumentOutOfRangeException(nameof(product), product, null); } Directory.Delete(tempFolder, true); File.Delete(zipFilePath); }
public static void ExtractZipFileToDirectory(string zipFilePath, string destinationFolder, GithubProduct product) { if (string.IsNullOrEmpty(zipFilePath) || string.IsNullOrEmpty(destinationFolder) || !Directory.Exists(destinationFolder) || !File.Exists(zipFilePath)) { return; } using (var zipFile = ZipFile.Read(zipFilePath)) { var tempFolder = Path.Combine(destinationFolder, "TempUnzipFolder"); Directory.CreateDirectory(tempFolder); zipFile.ExtractAll(tempFolder, ExtractExistingFileAction.OverwriteSilently); switch (product) { case GithubProduct.Client: ExtractClient(tempFolder); break; case GithubProduct.Server: ExtractServer(tempFolder); break; default: throw new ArgumentOutOfRangeException(nameof(product), product, null); } Directory.Delete(tempFolder, true); } File.Delete(zipFilePath); }