From d41908adebed4880d727f3279850af0effdb99f4 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Tue, 25 Nov 2025 14:25:58 +0000 Subject: [PATCH] fixes for clarity --- .../Archives/IArchiveEntryExtensions.cs | 3 ++- .../Writers/Zip/ZipCentralDirectoryEntry.cs | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/SharpCompress/Archives/IArchiveEntryExtensions.cs b/src/SharpCompress/Archives/IArchiveEntryExtensions.cs index 6fc17e31..6e76f7f9 100644 --- a/src/SharpCompress/Archives/IArchiveEntryExtensions.cs +++ b/src/SharpCompress/Archives/IArchiveEntryExtensions.cs @@ -128,6 +128,7 @@ public static class IArchiveEntryExtensions { using var fs = File.Open(destinationFileName, fm); await entry.WriteToAsync(fs, cancellationToken).ConfigureAwait(false); - } + }, + cancellationToken ); } diff --git a/src/SharpCompress/Writers/Zip/ZipCentralDirectoryEntry.cs b/src/SharpCompress/Writers/Zip/ZipCentralDirectoryEntry.cs index 64dde2c7..b4f9a699 100644 --- a/src/SharpCompress/Writers/Zip/ZipCentralDirectoryEntry.cs +++ b/src/SharpCompress/Writers/Zip/ZipCentralDirectoryEntry.cs @@ -53,15 +53,25 @@ internal class ZipCentralDirectoryEntry // - Version 63 for LZMA, PPMd, BZip2, ZStandard (advanced compression methods) // - Version 45 for Zip64 extensions (when Zip64HeaderOffset != 0 or actual sizes require it) // - Version 20 for standard Deflate/None compression - var version = (byte)( + byte version; + if ( compression == ZipCompressionMethod.LZMA || compression == ZipCompressionMethod.PPMd || compression == ZipCompressionMethod.BZip2 || compression == ZipCompressionMethod.ZStandard || compression == ZipCompressionMethod.None - ? 63 - : zip64 || Zip64HeaderOffset != 0 ? 45 - : 20 + ) + { + version = 63; + } + else if (zip64 || Zip64HeaderOffset != 0) + { + version = 45; + } + else + { + version = 20; + } var flags = Equals(archiveEncoding.GetEncoding(), Encoding.UTF8) ? HeaderFlags.Efs