Calling ArchiveFactory.IsArchive with a stream as input parameter will potentially seek the given stream. That is necessary of course, but after returning, the stream should be seeked back to its original position.
After all, you might want to check whether a given input is a valid archive that can be handled by SharpCompress before continuing to construct an archive from that stream (or do other things with that stream).
It looks like ArchiveFactory.FindFactory already has that logic but is only exposed via ArchiveFactory.Open, which in itself seeks the input stream by opening the archive immediately (maybe that should also be changed? not sure).
Calling
ArchiveFactory.IsArchive
with a stream as input parameter will potentially seek the given stream. That is necessary of course, but after returning, the stream should be seeked back to its original position.After all, you might want to check whether a given input is a valid archive that can be handled by SharpCompress before continuing to construct an archive from that stream (or do other things with that stream).
It looks like
ArchiveFactory.FindFactory
already has that logic but is only exposed viaArchiveFactory.Open
, which in itself seeks the input stream by opening the archive immediately (maybe that should also be changed? not sure).