diff --git a/src/SharpCompress/Archives/IArchiveEntryExtensions.cs b/src/SharpCompress/Archives/IArchiveEntryExtensions.cs index 878ad797..f4f8cb6b 100644 --- a/src/SharpCompress/Archives/IArchiveEntryExtensions.cs +++ b/src/SharpCompress/Archives/IArchiveEntryExtensions.cs @@ -1,5 +1,4 @@ -using System; -using System.IO; +using System.IO; using SharpCompress.Common; using SharpCompress.IO; using SharpCompress.Readers; @@ -8,7 +7,7 @@ namespace SharpCompress.Archives { public static class IArchiveEntryExtensions { - public static void WriteTo(this IArchiveEntry archiveEntry, Stream streamToWriteTo, Action partTransferredAction = null) + public static void WriteTo(this IArchiveEntry archiveEntry, Stream streamToWriteTo) { if (archiveEntry.Archive.Type == ArchiveType.Rar && archiveEntry.Archive.IsSolid) { @@ -33,7 +32,7 @@ namespace SharpCompress.Archives { using (Stream s = new ListeningStream(streamListener, entryStream)) { - s.TransferTo(streamToWriteTo, partTransferredAction); + s.TransferTo(streamToWriteTo); } } streamListener.FireEntryExtractionEnd(archiveEntry); diff --git a/src/SharpCompress/Readers/AbstractReader.cs b/src/SharpCompress/Readers/AbstractReader.cs index a055c17f..380e8df5 100644 --- a/src/SharpCompress/Readers/AbstractReader.cs +++ b/src/SharpCompress/Readers/AbstractReader.cs @@ -167,7 +167,7 @@ namespace SharpCompress.Readers } } - public void WriteEntryTo(Stream writableStream, Action partTransferredAction = null) + public void WriteEntryTo(Stream writableStream) { if (wroteCurrentEntry) { @@ -175,21 +175,22 @@ namespace SharpCompress.Readers } if ((writableStream == null) || (!writableStream.CanWrite)) { - throw new ArgumentNullException("A writable Stream was required. Use Cancel if that was intended."); + throw new ArgumentNullException( + "A writable Stream was required. Use Cancel if that was intended."); } var streamListener = this as IReaderExtractionListener; streamListener.FireEntryExtractionBegin(Entry); - Write(writableStream, partTransferredAction); + Write(writableStream); streamListener.FireEntryExtractionEnd(Entry); wroteCurrentEntry = true; } - internal void Write(Stream writeStream, Action partTransferredAction = null) + internal void Write(Stream writeStream) { using (Stream s = OpenEntryStream()) { - s.TransferTo(writeStream, partTransferredAction); + s.TransferTo(writeStream); } } diff --git a/src/SharpCompress/Readers/IReader.cs b/src/SharpCompress/Readers/IReader.cs index 6b1a7818..0df03177 100644 --- a/src/SharpCompress/Readers/IReader.cs +++ b/src/SharpCompress/Readers/IReader.cs @@ -20,8 +20,7 @@ namespace SharpCompress.Readers /// Decompresses the current entry to the stream. This cannot be called twice for the current entry. /// /// - /// - void WriteEntryTo(Stream writableStream, Action partTransferredAction = null); + void WriteEntryTo(Stream writableStream); bool Cancelled { get; } void Cancel(); diff --git a/src/SharpCompress/Readers/IReaderExtensions.cs b/src/SharpCompress/Readers/IReaderExtensions.cs index 2fdeb1d9..4100a607 100644 --- a/src/SharpCompress/Readers/IReaderExtensions.cs +++ b/src/SharpCompress/Readers/IReaderExtensions.cs @@ -1,5 +1,4 @@ #if !NO_FILE -using System; using System.IO; using SharpCompress.Common; #endif @@ -40,12 +39,8 @@ namespace SharpCompress.Readers /// /// Extract to specific directory, retaining filename /// - public static void WriteEntryToDirectory( - this IReader reader, - string destinationDirectory, - ExtractionOptions options = null, - Action partTransferredAction = null - ) + public static void WriteEntryToDirectory(this IReader reader, string destinationDirectory, + ExtractionOptions options = null) { string destinationFileName = string.Empty; string file = Path.GetFileName(reader.Entry.Key); @@ -71,7 +66,7 @@ namespace SharpCompress.Readers if (!reader.Entry.IsDirectory) { - reader.WriteEntryToFile(destinationFileName, options, partTransferredAction); + reader.WriteEntryToFile(destinationFileName, options); } else if (options.ExtractFullPath && !Directory.Exists(destinationFileName)) { @@ -82,12 +77,8 @@ namespace SharpCompress.Readers /// /// Extract to specific file /// - public static void WriteEntryToFile( - this IReader reader, - string destinationFileName, - ExtractionOptions options = null, - Action partTransferredAction = null - ) + public static void WriteEntryToFile(this IReader reader, string destinationFileName, + ExtractionOptions options = null) { FileMode fm = FileMode.Create; options = options ?? new ExtractionOptions() @@ -101,7 +92,7 @@ namespace SharpCompress.Readers } using (FileStream fs = File.Open(destinationFileName, fm)) { - reader.WriteEntryTo(fs, partTransferredAction); + reader.WriteEntryTo(fs); //using (Stream s = reader.OpenEntryStream()) //{ // s.TransferTo(fs); diff --git a/src/SharpCompress/Utility.cs b/src/SharpCompress/Utility.cs index 253e0e9d..451075f3 100644 --- a/src/SharpCompress/Utility.cs +++ b/src/SharpCompress/Utility.cs @@ -229,18 +229,15 @@ namespace SharpCompress return DosDateToDateTime((UInt32)iTime); } - public static long TransferTo(this Stream source, Stream destination, Action partTransferredAction = null) + public static long TransferTo(this Stream source, Stream destination) { byte[] array = new byte[81920]; int count; - var iterations = 0; long total = 0; while ((count = source.Read(array, 0, array.Length)) != 0) { total += count; destination.Write(array, 0, count); - iterations++; - partTransferredAction?.Invoke(total, iterations); } return total; } diff --git a/src/SharpCompress/Writers/AbstractWriter.cs b/src/SharpCompress/Writers/AbstractWriter.cs index 79f880b9..dde6892a 100644 --- a/src/SharpCompress/Writers/AbstractWriter.cs +++ b/src/SharpCompress/Writers/AbstractWriter.cs @@ -24,7 +24,7 @@ namespace SharpCompress.Writers public ArchiveType WriterType { get; } - public abstract void Write(string filename, Stream source, DateTime? modificationTime, Action partTransferredAction = null); + public abstract void Write(string filename, Stream source, DateTime? modificationTime); protected virtual void Dispose(bool isDisposing) { diff --git a/src/SharpCompress/Writers/GZip/GZipWriter.cs b/src/SharpCompress/Writers/GZip/GZipWriter.cs index 48b88a29..d9ef3562 100644 --- a/src/SharpCompress/Writers/GZip/GZipWriter.cs +++ b/src/SharpCompress/Writers/GZip/GZipWriter.cs @@ -26,7 +26,7 @@ namespace SharpCompress.Writers.GZip base.Dispose(isDisposing); } - public override void Write(string filename, Stream source, DateTime? modificationTime, Action partTransferredAction = null) + public override void Write(string filename, Stream source, DateTime? modificationTime) { if (wroteToStream) { @@ -35,7 +35,7 @@ namespace SharpCompress.Writers.GZip GZipStream stream = OutputStream as GZipStream; stream.FileName = filename; stream.LastModified = modificationTime; - source.TransferTo(stream, partTransferredAction); + source.TransferTo(stream); wroteToStream = true; } } diff --git a/src/SharpCompress/Writers/IWriter.cs b/src/SharpCompress/Writers/IWriter.cs index d55e8b74..a15225bf 100644 --- a/src/SharpCompress/Writers/IWriter.cs +++ b/src/SharpCompress/Writers/IWriter.cs @@ -7,6 +7,6 @@ namespace SharpCompress.Writers public interface IWriter : IDisposable { ArchiveType WriterType { get; } - void Write(string filename, Stream source, DateTime? modificationTime, Action partTransferredAction = null); + void Write(string filename, Stream source, DateTime? modificationTime); } } \ No newline at end of file diff --git a/src/SharpCompress/Writers/Tar/TarWriter.cs b/src/SharpCompress/Writers/Tar/TarWriter.cs index 552b0c93..0dbdb0a2 100644 --- a/src/SharpCompress/Writers/Tar/TarWriter.cs +++ b/src/SharpCompress/Writers/Tar/TarWriter.cs @@ -39,9 +39,9 @@ namespace SharpCompress.Writers.Tar InitalizeStream(destination, !options.LeaveStreamOpen); } - public override void Write(string filename, Stream source, DateTime? modificationTime, Action partTransferredAction = null) + public override void Write(string filename, Stream source, DateTime? modificationTime) { - Write(filename, source, modificationTime, null, partTransferredAction); + Write(filename, source, modificationTime, null); } private string NormalizeFilename(string filename) @@ -57,7 +57,7 @@ namespace SharpCompress.Writers.Tar return filename.Trim('/'); } - public void Write(string filename, Stream source, DateTime? modificationTime, long? size, Action partTransferredAction = null) + public void Write(string filename, Stream source, DateTime? modificationTime, long? size) { if (!source.CanSeek && size == null) { @@ -71,7 +71,7 @@ namespace SharpCompress.Writers.Tar header.Name = NormalizeFilename(filename); header.Size = realSize; header.Write(OutputStream); - size = source.TransferTo(OutputStream, partTransferredAction); + size = source.TransferTo(OutputStream); PadTo512(size.Value, false); } diff --git a/src/SharpCompress/Writers/Zip/ZipWriter.cs b/src/SharpCompress/Writers/Zip/ZipWriter.cs index 96efa0b6..e1a001b5 100644 --- a/src/SharpCompress/Writers/Zip/ZipWriter.cs +++ b/src/SharpCompress/Writers/Zip/ZipWriter.cs @@ -90,19 +90,19 @@ namespace SharpCompress.Writers.Zip } } - public override void Write(string entryPath, Stream source, DateTime? modificationTime, Action partTransferredAction = null) + public override void Write(string entryPath, Stream source, DateTime? modificationTime) { Write(entryPath, source, new ZipWriterEntryOptions() { ModificationDateTime = modificationTime - }, partTransferredAction); + }); } - public void Write(string entryPath, Stream source, ZipWriterEntryOptions zipWriterEntryOptions, Action partTransferredAction = null) + public void Write(string entryPath, Stream source, ZipWriterEntryOptions zipWriterEntryOptions) { using (Stream output = WriteToStream(entryPath, zipWriterEntryOptions)) { - source.TransferTo(output, partTransferredAction); + source.TransferTo(output); } }