diff --git a/SabreTools.Helper/Tools/ArchiveTools.cs b/SabreTools.Helper/Tools/ArchiveTools.cs index c4c7b221..fd20a458 100644 --- a/SabreTools.Helper/Tools/ArchiveTools.cs +++ b/SabreTools.Helper/Tools/ArchiveTools.cs @@ -187,6 +187,23 @@ namespace SabreTools.Helper sza.WriteToDirectory(tempdir, ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite); encounteredErrors = false; } + else if (at == ArchiveType.GZip && gz != ArchiveScanLevel.External) + { + // Create the temp directory + Directory.CreateDirectory(tempdir); + + using (FileStream itemstream = File.OpenRead(input)) + { + using (FileStream outstream = File.Create(tempdir + Path.GetFileNameWithoutExtension(input))) + { + using (GZipStream gzstream = new GZipStream(itemstream, CompressionMode.Decompress)) + { + gzstream.CopyTo(outstream); + } + } + } + encounteredErrors = false; + } else { reader = ReaderFactory.Open(File.OpenRead(input)); @@ -202,26 +219,6 @@ namespace SabreTools.Helper reader.WriteAllToDirectory(tempdir, ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite); encounteredErrors = false; } - else if (at == ArchiveType.GZip && gz != ArchiveScanLevel.External) - { - // Close the original archive handle - reader.Dispose(); - - // Create the temp directory - Directory.CreateDirectory(tempdir); - - using (FileStream itemstream = File.OpenRead(input)) - { - using (FileStream outstream = File.Create(tempdir + Path.GetFileNameWithoutExtension(input))) - { - using (GZipStream gzstream = new GZipStream(itemstream, CompressionMode.Decompress)) - { - gzstream.CopyTo(outstream); - } - } - } - encounteredErrors = false; - } } } catch (EndOfStreamException)