mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-09-24 16:05:27 +00:00
clean up seekable checks
This commit is contained in:
@@ -92,15 +92,13 @@ public static partial class ArchiveFactory
|
||||
)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
streams.NotNull(nameof(streams));
|
||||
var streamsArray = streams;
|
||||
var streamsArray = streams.RequireReadable();
|
||||
streamsArray.RequireSeekable();
|
||||
if (streamsArray.Count == 0)
|
||||
{
|
||||
throw new ArchiveOperationException("No streams");
|
||||
}
|
||||
|
||||
streamsArray.RequireSeekable();
|
||||
|
||||
var firstStream = streamsArray[0];
|
||||
if (streamsArray.Count == 1)
|
||||
{
|
||||
|
||||
@@ -73,15 +73,13 @@ public static partial class ArchiveFactory
|
||||
|
||||
public static IArchive OpenArchive(IReadOnlyList<Stream> streams, ReaderOptions? options = null)
|
||||
{
|
||||
streams.NotNull(nameof(streams));
|
||||
var streamsArray = streams;
|
||||
var streamsArray = streams.RequireReadable();
|
||||
streamsArray.RequireSeekable();
|
||||
if (streamsArray.Count == 0)
|
||||
{
|
||||
throw new ArchiveOperationException("No streams");
|
||||
}
|
||||
|
||||
streamsArray.RequireSeekable();
|
||||
|
||||
var firstStream = streamsArray[0];
|
||||
if (streamsArray.Count == 1)
|
||||
{
|
||||
|
||||
@@ -76,9 +76,8 @@ public partial class GZipArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
streams.NotNull(nameof(streams));
|
||||
streams.RequireSeekable();
|
||||
var strms = streams;
|
||||
var strms = streams.RequireReadable();
|
||||
strms.RequireSeekable();
|
||||
return new GZipArchive(
|
||||
new SourceStream(
|
||||
strms[0],
|
||||
@@ -93,6 +92,7 @@ public partial class GZipArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
stream.RequireReadable();
|
||||
stream.RequireSeekable();
|
||||
|
||||
return new GZipArchive(
|
||||
|
||||
@@ -58,6 +58,7 @@ public partial class RarArchive
|
||||
|
||||
public static IRarArchive OpenArchive(Stream stream, ReaderOptions? readerOptions = null)
|
||||
{
|
||||
stream.RequireReadable();
|
||||
stream.RequireSeekable();
|
||||
|
||||
return new RarArchive(
|
||||
@@ -86,9 +87,8 @@ public partial class RarArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
streams.NotNull(nameof(streams));
|
||||
streams.RequireSeekable();
|
||||
var strms = streams;
|
||||
var strms = streams.RequireReadable();
|
||||
strms.RequireSeekable();
|
||||
return new RarArchive(
|
||||
new SourceStream(
|
||||
strms[0],
|
||||
|
||||
@@ -71,9 +71,8 @@ public partial class SevenZipArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
streams.NotNull(nameof(streams));
|
||||
streams.RequireSeekable();
|
||||
var strms = streams;
|
||||
var strms = streams.RequireReadable();
|
||||
strms.RequireSeekable();
|
||||
return new SevenZipArchive(
|
||||
new SourceStream(
|
||||
strms[0],
|
||||
@@ -85,6 +84,7 @@ public partial class SevenZipArchive
|
||||
|
||||
public static IArchive OpenArchive(Stream stream, ReaderOptions? readerOptions = null)
|
||||
{
|
||||
stream.RequireReadable();
|
||||
stream.RequireSeekable();
|
||||
|
||||
return new SevenZipArchive(
|
||||
|
||||
@@ -66,9 +66,8 @@ public partial class TarArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
streams.NotNull(nameof(streams));
|
||||
streams.RequireSeekable();
|
||||
var strms = streams;
|
||||
var strms = streams.RequireReadable();
|
||||
strms.RequireSeekable();
|
||||
var sourceStream = new SourceStream(
|
||||
strms[0],
|
||||
i => i < strms.Count ? strms[i] : null,
|
||||
@@ -87,6 +86,7 @@ public partial class TarArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
stream.RequireReadable();
|
||||
stream.RequireSeekable();
|
||||
|
||||
return OpenArchive([stream], readerOptions);
|
||||
@@ -98,7 +98,7 @@ public partial class TarArchive
|
||||
CancellationToken cancellationToken = default
|
||||
)
|
||||
{
|
||||
stream.NotNull(nameof(stream));
|
||||
stream.RequireReadable();
|
||||
stream.RequireSeekable();
|
||||
var sourceStream = new SourceStream(
|
||||
stream,
|
||||
@@ -155,9 +155,8 @@ public partial class TarArchive
|
||||
)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
streams.NotNull(nameof(streams));
|
||||
streams.RequireSeekable();
|
||||
var strms = streams;
|
||||
var strms = streams.RequireReadable();
|
||||
strms.RequireSeekable();
|
||||
var sourceStream = new SourceStream(
|
||||
strms[0],
|
||||
i => i < strms.Count ? strms[i] : null,
|
||||
|
||||
@@ -67,9 +67,8 @@ public partial class ZipArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
streams.NotNull(nameof(streams));
|
||||
streams.RequireSeekable();
|
||||
var strms = streams;
|
||||
var strms = streams.RequireReadable();
|
||||
strms.RequireSeekable();
|
||||
return new ZipArchive(
|
||||
new SourceStream(
|
||||
strms[0],
|
||||
@@ -84,6 +83,7 @@ public partial class ZipArchive
|
||||
ReaderOptions? readerOptions = null
|
||||
)
|
||||
{
|
||||
stream.RequireReadable();
|
||||
stream.RequireSeekable();
|
||||
|
||||
return new ZipArchive(
|
||||
@@ -128,7 +128,6 @@ public partial class ZipArchive
|
||||
)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
streams.RequireSeekable();
|
||||
return new((IWritableAsyncArchive<ZipWriterOptions>)OpenArchive(streams, readerOptions));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user