Fix split zip parts not found when the .ZIP is uppercase

This commit is contained in:
Iain
2026-10-04 02:10:35 +01:00
committed by Adam Hathcock
parent 2071e9036a
commit 23e667ed24
2 changed files with 12 additions and 1 deletions

View File

@@ -21,7 +21,7 @@ internal static class ZipArchiveVolumeFactory
part1.DirectoryName!,
String.Concat(
m.Groups[1].Value,
Regex.Replace(m.Groups[2].Value, @"[^xz]", ""),
Regex.Replace(m.Groups[2].Value.ToLowerInvariant(), @"[^xz]", ""),
index.ToString(Constants.DefaultCultureInfo).PadLeft(2, '0')
)
)

View File

@@ -148,6 +148,17 @@ public class ZipArchiveTests : ArchiveTests
//uses first part to search for all parts and compares against this array
ArchiveGetParts(new[] { "WinZip26.nocomp.multi.zipx", "WinZip26.nocomp.multi.zx01" });
[Fact]
public void Zip_GetParts_UpperCaseZip()
{
var zip = Path.Combine(SCRATCH2_FILES_PATH, "MULTI.ZIP");
var z01 = Path.Combine(SCRATCH2_FILES_PATH, "MULTI.z01");
File.Copy(Path.Combine(TEST_ARCHIVES_PATH, "Infozip.nocomp.multi.zip"), zip);
File.Copy(Path.Combine(TEST_ARCHIVES_PATH, "Infozip.nocomp.multi.z01"), z01);
Assert.Equal(new[] { zip, z01 }, ArchiveFactory.GetFileParts(zip));
}
[Fact]
public void Zip_GetPartsSplit() =>
//uses first part to search for all parts and compares against this array