diff --git a/SharpCompress/Compressor/BZip2/BZip2Stream.cs b/SharpCompress/Compressor/BZip2/BZip2Stream.cs index e56d1d80..21bcc423 100644 --- a/SharpCompress/Compressor/BZip2/BZip2Stream.cs +++ b/SharpCompress/Compressor/BZip2/BZip2Stream.cs @@ -27,6 +27,11 @@ namespace SharpCompress.Compressor.BZip2 this.stream = new CBZip2InputStream(stream, decompressContacted, leaveOpen); } } + + public void Finish() + { + (this.stream as CBZip2OutputStream)?.Finish(); + } protected override void Dispose(bool disposing) { diff --git a/SharpCompress/Reader/ReaderFactory.cs b/SharpCompress/Reader/ReaderFactory.cs index dbf1756b..e8e794a7 100644 --- a/SharpCompress/Reader/ReaderFactory.cs +++ b/SharpCompress/Reader/ReaderFactory.cs @@ -53,7 +53,7 @@ namespace SharpCompress.Reader if (BZip2Stream.IsBZip2(rewindableStream)) { rewindableStream.Rewind(false); - BZip2Stream testStream = new BZip2Stream(rewindableStream, CompressionMode.Decompress, false); + BZip2Stream testStream = new BZip2Stream(rewindableStream, CompressionMode.Decompress, true); if (TarArchive.IsTarFile(testStream)) { rewindableStream.Rewind(true); diff --git a/SharpCompress/Writer/Tar/TarWriter.cs b/SharpCompress/Writer/Tar/TarWriter.cs index dd907c27..9dd61dbb 100644 --- a/SharpCompress/Writer/Tar/TarWriter.cs +++ b/SharpCompress/Writer/Tar/TarWriter.cs @@ -36,7 +36,7 @@ namespace SharpCompress.Writer.Tar throw new InvalidFormatException("Tar does not support compression: " + compressionInfo.Type); } } - InitalizeStream(destination, false); + InitalizeStream(destination, !leaveOpen); } public override void Write(string filename, Stream source, DateTime? modificationTime) @@ -91,7 +91,7 @@ namespace SharpCompress.Writer.Tar { PadTo512(0, true); PadTo512(0, true); - OutputStream.Dispose(); // required when bzip2 compression is used + (OutputStream as BZip2Stream)?.Finish(); // required when bzip2 compression is used } base.Dispose(isDisposing); }