public static void UncompressZip(string archiveFile, string directory) { Log.Information("Uncompressing {File} to {Directory} ...", Path.GetFileName(archiveFile), directory); using var fileStream = File.OpenRead(archiveFile); using var zipFile = new ICSharpCode.SharpZipLib.Zip.ZipFile(fileStream); var entries = zipFile.Cast <ZipEntry>().Where(x => !x.IsDirectory); foreach (var entry in entries) { var file = PathConstruction.Combine(directory, entry.Name); FileSystemTasks.EnsureExistingParentDirectory(file); using var entryStream = zipFile.GetInputStream(entry); using var outputStream = File.Open(file, FileMode.Create); entryStream.CopyTo(outputStream); } }
public static void UncompressZip(string archiveFile, string directory) { using (var fileStream = File.OpenRead(archiveFile)) using (var zipFile = new ICSharpCode.SharpZipLib.Zip.ZipFile(fileStream)) { var entries = zipFile.Cast <ZipEntry>().Where(x => !x.IsDirectory); foreach (var entry in entries) { var file = PathConstruction.Combine(directory, entry.Name); FileSystemTasks.EnsureExistingParentDirectory(file); using (var entryStream = zipFile.GetInputStream(entry)) using (var outputStream = File.Open(file, FileMode.Create)) { entryStream.CopyTo(outputStream); } } } Logger.Info($"Uncompressed '{archiveFile}' to '{directory}'."); }