From 21087323af2caa5cfb394eee30ecd919b68421c6 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Sat, 9 Jan 2016 13:29:29 +0000 Subject: [PATCH] Make Tar last in detection as it contains other files --- SharpCompress/Archive/ArchiveFactory.cs | 12 ++++++------ SharpCompress/Reader/ReaderFactory.cs | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/SharpCompress/Archive/ArchiveFactory.cs b/SharpCompress/Archive/ArchiveFactory.cs index 923f7424..db62a2db 100644 --- a/SharpCompress/Archive/ArchiveFactory.cs +++ b/SharpCompress/Archive/ArchiveFactory.cs @@ -31,12 +31,6 @@ namespace SharpCompress.Archive return ZipArchive.Open(stream, options, null); } stream.Seek(0, SeekOrigin.Begin); - if (TarArchive.IsTarFile(stream)) - { - stream.Seek(0, SeekOrigin.Begin); - return TarArchive.Open(stream, options); - } - stream.Seek(0, SeekOrigin.Begin); if (SevenZipArchive.IsSevenZipFile(stream)) { stream.Seek(0, SeekOrigin.Begin); @@ -54,6 +48,12 @@ namespace SharpCompress.Archive stream.Seek(0, SeekOrigin.Begin); return RarArchive.Open(stream, options); } + stream.Seek(0, SeekOrigin.Begin); + if (TarArchive.IsTarFile(stream)) + { + stream.Seek(0, SeekOrigin.Begin); + return TarArchive.Open(stream, options); + } throw new InvalidOperationException("Cannot determine compressed stream type. Supported Archive Formats: Zip, GZip, Tar, Rar, 7Zip"); } diff --git a/SharpCompress/Reader/ReaderFactory.cs b/SharpCompress/Reader/ReaderFactory.cs index e336f2cb..dbf1756b 100644 --- a/SharpCompress/Reader/ReaderFactory.cs +++ b/SharpCompress/Reader/ReaderFactory.cs @@ -61,12 +61,6 @@ namespace SharpCompress.Reader } } - rewindableStream.Rewind(false); - if (TarArchive.IsTarFile(rewindableStream)) - { - rewindableStream.Rewind(true); - return TarReader.Open(rewindableStream, options); - } rewindableStream.Rewind(false); if (RarArchive.IsRarFile(rewindableStream, options)) { @@ -74,6 +68,12 @@ namespace SharpCompress.Reader return RarReader.Open(rewindableStream, options); } + rewindableStream.Rewind(false); + if (TarArchive.IsTarFile(rewindableStream)) + { + rewindableStream.Rewind(true); + return TarReader.Open(rewindableStream, options); + } throw new InvalidOperationException("Cannot determine compressed stream type. Supported Reader Formats: Zip, GZip, BZip2, Tar, Rar"); } }