2 using System.Collections.Generic;
3 using SharpCompress.Common;
4 using SharpCompress.Reader;
6 namespace SharpCompress.Archive
8 internal interface IArchive : IDisposable
10 event EventHandler<ArchiveExtractionEventArgs<IArchiveEntry>> EntryExtractionBegin;
11 event EventHandler<ArchiveExtractionEventArgs<IArchiveEntry>> EntryExtractionEnd;
13 event EventHandler<CompressedBytesReadEventArgs> CompressedBytesRead;
14 event EventHandler<FilePartExtractionBeginEventArgs> FilePartExtractionBegin;
16 IEnumerable<IArchiveEntry> Entries { get; }
17 long TotalSize { get; }
18 IEnumerable<IVolume> Volumes { get; }
20 ArchiveType Type { get; }
23 /// Use this method to extract all entries in an archive in order.
24 /// This is primarily for SOLID Rar Archives or 7Zip Archives as they need to be
25 /// extracted sequentially for the best performance.
27 /// <returns></returns>
28 IReader ExtractAllEntries();
31 /// Archive is SOLID (this means the Archive saved bytes by reusing information which helps for archives containing many small files).
32 /// Rar Archives can be SOLID while all 7Zip archives are considered SOLID.
37 /// This checks to see if all the known entries have IsComplete = true
39 bool IsComplete { get; }