diff --git a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs
index 841151445..e8aac7b75 100644
--- a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs
+++ b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs
@@ -30,7 +30,7 @@ public static SevenZipArchive Open(string filePath, ReaderOptions readerOptions
///
///
///
- public static SevenZipArchive Open(FileInfo fileInfo, ReaderOptions readerOptions)
+ public static SevenZipArchive Open(FileInfo fileInfo, ReaderOptions readerOptions = null)
{
fileInfo.CheckNotNull("fileInfo");
return new SevenZipArchive(fileInfo, readerOptions ?? new ReaderOptions());
@@ -44,7 +44,7 @@ public static SevenZipArchive Open(FileInfo fileInfo, ReaderOptions readerOption
public static SevenZipArchive Open(Stream stream, ReaderOptions readerOptions = null)
{
stream.CheckNotNull("stream");
- return new SevenZipArchive(stream, readerOptions);
+ return new SevenZipArchive(stream, readerOptions ?? new ReaderOptions());
}
#if !NO_FILE
diff --git a/src/SharpCompress/Common/Volume.cs b/src/SharpCompress/Common/Volume.cs
index 39d00621c..d5921ab78 100644
--- a/src/SharpCompress/Common/Volume.cs
+++ b/src/SharpCompress/Common/Volume.cs
@@ -8,10 +8,10 @@ public abstract class Volume : IVolume
{
private readonly Stream actualStream;
- internal Volume(Stream stream, ReaderOptions readerFactoryOptions)
+ internal Volume(Stream stream, ReaderOptions readerOptions)
{
actualStream = stream;
- ReaderOptions = readerFactoryOptions;
+ ReaderOptions = readerOptions;
}
internal Stream Stream { get { return new NonDisposingStream(actualStream); } }
diff --git a/src/SharpCompress/Readers/AbstractReader.cs b/src/SharpCompress/Readers/AbstractReader.cs
index 810d7c5e1..380e8df5a 100644
--- a/src/SharpCompress/Readers/AbstractReader.cs
+++ b/src/SharpCompress/Readers/AbstractReader.cs
@@ -29,7 +29,7 @@ internal AbstractReader(ReaderOptions options, ArchiveType archiveType)
Options = options;
}
- internal ReaderOptions Options { get; private set; }
+ internal ReaderOptions Options { get; }
public ArchiveType ArchiveType { get; }
diff --git a/src/SharpCompress/Readers/ReaderFactory.cs b/src/SharpCompress/Readers/ReaderFactory.cs
index 9149b8b06..a1a931f41 100644
--- a/src/SharpCompress/Readers/ReaderFactory.cs
+++ b/src/SharpCompress/Readers/ReaderFactory.cs
@@ -33,7 +33,7 @@ public static IReader Open(Stream stream, ReaderOptions options = null)
};
RewindableStream rewindableStream = new RewindableStream(stream);
rewindableStream.StartRecording();
- if (ZipArchive.IsZipFile(rewindableStream, null))
+ if (ZipArchive.IsZipFile(rewindableStream, options.Password))
{
rewindableStream.Rewind(true);
return ZipReader.Open(rewindableStream, options);
diff --git a/test/SharpCompress.Test/Zip/ZipReaderTests.cs b/test/SharpCompress.Test/Zip/ZipReaderTests.cs
index 0927a31bd..115138eb0 100644
--- a/test/SharpCompress.Test/Zip/ZipReaderTests.cs
+++ b/test/SharpCompress.Test/Zip/ZipReaderTests.cs
@@ -228,6 +228,8 @@ public override bool CanSeek
[Fact]
public void TestSharpCompressWithEmptyStream()
{
+ ResetScratch();
+
MemoryStream stream = new NonSeekableMemoryStream();
using (IWriter zipWriter = WriterFactory.Open(stream, ArchiveType.Zip, CompressionType.Deflate))
@@ -250,7 +252,9 @@ public void TestSharpCompressWithEmptyStream()
byte[] buf = new byte[bufSize];
int bytesRead = 0;
while ((bytesRead = entry.Read(buf, 0, bufSize)) > 0)
+ {
tempStream.Write(buf, 0, bytesRead);
+ }
}
}
}