diff --git a/src/SharpCompress/Common/Rar/RarEntry.cs b/src/SharpCompress/Common/Rar/RarEntry.cs index 623bc9bf..fc084d5c 100644 --- a/src/SharpCompress/Common/Rar/RarEntry.cs +++ b/src/SharpCompress/Common/Rar/RarEntry.cs @@ -10,7 +10,7 @@ namespace SharpCompress.Common.Rar /// /// As the V2017 port isn't complete, add this check to use the legacy Rar code. /// - internal bool IsRarV3 => FileHeader.CompressionAlgorithm == 29 || FileHeader.CompressionAlgorithm == 36; + internal bool IsRarV3 => FileHeader.CompressionAlgorithm == 20 || FileHeader.CompressionAlgorithm == 26 || FileHeader.CompressionAlgorithm == 29 || FileHeader.CompressionAlgorithm == 36; //Nanook - Added 20+26 as Test arc from WinRar2.8 (algo 20) was failing with 2017 code /// /// The File's 32 bit CRC Hash diff --git a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs index 7133e8e8..59a66016 100644 --- a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs +++ b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs @@ -360,6 +360,31 @@ namespace SharpCompress.Test.Rar ArchiveFileRead("Rar5.solid.rar"); } + [Fact] + public void Rar2_Multi_ArchiveStreamRead() + { + DoRar_Multi_ArchiveStreamRead(new string[] { + "Rar2.multi.rar", + "Rar2.multi.r00", + "Rar2.multi.r01", + "Rar2.multi.r02", + "Rar2.multi.r03", + "Rar2.multi.r04", + "Rar2.multi.r05"}, false); + } + + [Fact] + public void Rar2_Multi_ArchiveFileRead() + { + ArchiveFileRead("Rar2.multi.rar"); //r00, r01... + } + + [Fact] + public void Rar2_ArchiveFileRead() + { + ArchiveFileRead("Rar2.rar"); + } + [Fact] public void Rar_Multi_ArchiveFileRead() { diff --git a/tests/TestArchives/Archives/Rar2.multi.r00 b/tests/TestArchives/Archives/Rar2.multi.r00 new file mode 100644 index 00000000..22bce2e1 Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r00 differ diff --git a/tests/TestArchives/Archives/Rar2.multi.r01 b/tests/TestArchives/Archives/Rar2.multi.r01 new file mode 100644 index 00000000..878b6d8a Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r01 differ diff --git a/tests/TestArchives/Archives/Rar2.multi.r02 b/tests/TestArchives/Archives/Rar2.multi.r02 new file mode 100644 index 00000000..cc5fbc57 Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r02 differ diff --git a/tests/TestArchives/Archives/Rar2.multi.r03 b/tests/TestArchives/Archives/Rar2.multi.r03 new file mode 100644 index 00000000..259cafdd Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r03 differ diff --git a/tests/TestArchives/Archives/Rar2.multi.r04 b/tests/TestArchives/Archives/Rar2.multi.r04 new file mode 100644 index 00000000..d46e4c7a Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r04 differ diff --git a/tests/TestArchives/Archives/Rar2.multi.r05 b/tests/TestArchives/Archives/Rar2.multi.r05 new file mode 100644 index 00000000..48ff0c66 Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r05 differ diff --git a/tests/TestArchives/Archives/Rar2.multi.rar b/tests/TestArchives/Archives/Rar2.multi.rar new file mode 100644 index 00000000..3621383f Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.rar differ diff --git a/tests/TestArchives/Archives/Rar2.rar b/tests/TestArchives/Archives/Rar2.rar new file mode 100644 index 00000000..60b82f21 Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.rar differ