diff --git a/src/SharpCompress/Archives/AbstractArchive.cs b/src/SharpCompress/Archives/AbstractArchive.cs index c84bd41a..cca9eb8e 100644 --- a/src/SharpCompress/Archives/AbstractArchive.cs +++ b/src/SharpCompress/Archives/AbstractArchive.cs @@ -173,7 +173,8 @@ public abstract class AbstractArchive : IArchive, IArchiveExtra } } - public virtual bool IsMultiVolume =>_sourceStream?.Files.Count > 1 || _sourceStream?.Streams.Count > 1; + public virtual bool IsMultiVolume => + _sourceStream?.Files.Count > 1 || _sourceStream?.Streams.Count > 1; public virtual bool SupportsMultiThreading => false; } diff --git a/src/SharpCompress/Archives/Rar/RarArchive.cs b/src/SharpCompress/Archives/Rar/RarArchive.cs index 5354de15..e552515f 100644 --- a/src/SharpCompress/Archives/Rar/RarArchive.cs +++ b/src/SharpCompress/Archives/Rar/RarArchive.cs @@ -57,12 +57,18 @@ public class RarArchive : AbstractArchive return sourceStream.Streams.Select(a => new StreamRarArchiveVolume( a, ReaderOptions, - i++, IsMultiVolume + i++, + IsMultiVolume )); } //split mode or single file - return new StreamRarArchiveVolume(sourceStream, ReaderOptions, 0, IsMultiVolume).AsEnumerable(); + return new StreamRarArchiveVolume( + sourceStream, + ReaderOptions, + 0, + IsMultiVolume + ).AsEnumerable(); } protected override IReader CreateReaderForSolidExtraction() diff --git a/src/SharpCompress/Archives/Rar/RarArchiveEntry.cs b/src/SharpCompress/Archives/Rar/RarArchiveEntry.cs index 48b384e3..898b42ca 100644 --- a/src/SharpCompress/Archives/Rar/RarArchiveEntry.cs +++ b/src/SharpCompress/Archives/Rar/RarArchiveEntry.cs @@ -135,6 +135,5 @@ public class RarArchiveEntry : RarEntry, IArchiveEntry } } - public override bool SupportsMultiThreading => Parts.Single().SupportsMultiThreading; } diff --git a/src/SharpCompress/Archives/Rar/SeekableRarFilePart.cs b/src/SharpCompress/Archives/Rar/SeekableRarFilePart.cs index 9e3f960c..4caf4422 100644 --- a/src/SharpCompress/Archives/Rar/SeekableRarFilePart.cs +++ b/src/SharpCompress/Archives/Rar/SeekableRarFilePart.cs @@ -17,7 +17,8 @@ internal class SeekableRarFilePart : RarFilePart int index, Stream stream, string? password, - bool isMultiVolume) + bool isMultiVolume + ) : base(mh, fh, index) { _stream = stream; diff --git a/src/SharpCompress/Archives/Rar/StreamRarArchiveVolume.cs b/src/SharpCompress/Archives/Rar/StreamRarArchiveVolume.cs index d504dae4..5baaa16f 100644 --- a/src/SharpCompress/Archives/Rar/StreamRarArchiveVolume.cs +++ b/src/SharpCompress/Archives/Rar/StreamRarArchiveVolume.cs @@ -10,7 +10,13 @@ namespace SharpCompress.Archives.Rar; internal class StreamRarArchiveVolume : RarVolume { private readonly bool _isMultiVolume; - internal StreamRarArchiveVolume(Stream stream, ReaderOptions options, int index, bool isMultiVolume) + + internal StreamRarArchiveVolume( + Stream stream, + ReaderOptions options, + int index, + bool isMultiVolume + ) : base(StreamingMode.Seekable, stream, options, index) { _isMultiVolume = isMultiVolume; @@ -19,5 +25,12 @@ internal class StreamRarArchiveVolume : RarVolume internal override IEnumerable ReadFileParts() => GetVolumeFileParts(); internal override RarFilePart CreateFilePart(MarkHeader markHeader, FileHeader fileHeader) => - new SeekableRarFilePart(markHeader, fileHeader, Index, Stream, ReaderOptions.Password, _isMultiVolume); + new SeekableRarFilePart( + markHeader, + fileHeader, + Index, + Stream, + ReaderOptions.Password, + _isMultiVolume + ); } diff --git a/src/SharpCompress/Common/ExtractionMethods.cs b/src/SharpCompress/Common/ExtractionMethods.cs index 1fafe48b..509524b1 100644 --- a/src/SharpCompress/Common/ExtractionMethods.cs +++ b/src/SharpCompress/Common/ExtractionMethods.cs @@ -225,7 +225,8 @@ internal static class ExtractionMethods fm = FileMode.CreateNew; } - await openAndWriteAsync(destinationFileName, fm, cancellationToken).ConfigureAwait(false); + await openAndWriteAsync(destinationFileName, fm, cancellationToken) + .ConfigureAwait(false); entry.PreserveExtractionOptions(destinationFileName, options); } } diff --git a/tests/SharpCompress.Test/ArchiveTests.cs b/tests/SharpCompress.Test/ArchiveTests.cs index 5946a967..5a8a9ac7 100644 --- a/tests/SharpCompress.Test/ArchiveTests.cs +++ b/tests/SharpCompress.Test/ArchiveTests.cs @@ -280,7 +280,7 @@ public class ArchiveTests : ReaderTests Assert.True(archive.SupportsMultiThreading); foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - Assert.True(entry.SupportsMultiThreading); + Assert.True(entry.SupportsMultiThreading); var t = entry.WriteToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } diff --git a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs index ce2a4231..025205db 100644 --- a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs +++ b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs @@ -292,13 +292,15 @@ public class RarArchiveTests : ArchiveTests [Fact] public void Rar_ArchiveFileRead() => ArchiveFileRead("Rar.rar"); + [Fact] - public Task Rar_ArchiveFileRead_Multithreaded() => ArchiveFileRead_Multithreaded("Rar.rar"); + public Task Rar_ArchiveFileRead_Multithreaded() => ArchiveFileRead_Multithreaded("Rar.rar"); [Fact] public void Rar5_ArchiveFileRead() => ArchiveFileRead("Rar5.rar"); + [Fact] - public Task Rar5_ArchiveFileRead_Multithreaded() => ArchiveFileRead_Multithreaded("Rar5.rar"); + public Task Rar5_ArchiveFileRead_Multithreaded() => ArchiveFileRead_Multithreaded("Rar5.rar"); [Fact] public void Rar_ArchiveFileRead_HasDirectories() => @@ -363,8 +365,9 @@ public class RarArchiveTests : ArchiveTests [Fact] public void Rar2_ArchiveFileRead() => ArchiveFileRead("Rar2.rar"); + [Fact] - public Task Rar2_ArchiveFileRead_Multithreaded() => ArchiveFileRead_Multithreaded("Rar2.rar"); + public Task Rar2_ArchiveFileRead_Multithreaded() => ArchiveFileRead_Multithreaded("Rar2.rar"); [Fact] public void Rar15_ArchiveFileRead()