IArchiveExtractor Interface

Archive content extractor interface.

Definition

Namespace: OpenDiscoverSDK.Interfaces.Extractors
Assembly: OpenDiscoverSDK.Interfaces (in OpenDiscoverSDK.Interfaces.dll) Version: 2026.2.6.0 (2026.02.06)
C#
public interface IArchiveExtractor : IContentExtractor, 
	IDisposable
Implements
IContentExtractor, IDisposable

Remarks

The IArchiveExtractor interface is the most complicated of the IContentExtractor derived interfaces due to supporting several different types of archives. This interface handles the following types of archives:

Solid block compressed, single file archive Solid block compressed archives require a special extraction strategy to efficiently extract all items from the one or more internal compressed blocks. Solid block compression is a feature of 7-Zip and RAR formats to increase compression ratio by compressing file items together, instead of individually, in blocks. For this type of archive, methods ExtractContent(String) and ExtractSolidBlockItems(GetItemStreamCallback, ItemExtractionFinishedCallback, String) are used to get archive level item info/metadata and to efficiently extract archive items, respectively. Property IsSolid will be set to true for solid archives.
Split (multi-file), non-solid compressed archive Archives that are split into multiple files that need to be processed together. For split, non-solid archives property IsSplit will be set to true and property IsSolid will be set to false. See methods ExtractContent(Stream, String, String) and ExtractItem(Int32, Stream, String).
Split (multi-file) solid block compressed archive Archives that are solid block compressed, split into multiple files (volumes), and are required to be processed together. Properties IsSolid and IsSplit will be set to true for this type of archive. See methods ExtractContent(Stream, String, String) and ExtractSolidBlockItems(GetItemStreamCallback, ItemExtractionFinishedCallback, String).
"regular" archive Single file archives that are not solid block compressed. Properties IsSolid and IsSplit will be set to false for "regular" archives. See methods ExtractContent(String) and ExtractItem(Int32, Stream, String).

Properties

CalculateArchiveBinaryHash If true, instructs the IArchiveExtractor to calculate the archive binary hash (default value). If false, the archive will NOT be hashed.
ContentExtractorType The derived, actual content extractor interface type.
(Inherited from IContentExtractor)
IsSolid If true, this archive is a 'solid' block compressed archive, i.e., an archive composed of one or more internal blocks of items that are compressed together as one.
IsSplit If true, this archive is a split (multi-file) archive.
Length Gets the document's length in bytes.
(Inherited from IContentExtractor)
SupportsChildrenExtraction If true, this content extractor supports attachment, embedded item, or container item extraction.
(Inherited from IContentExtractor)
SupportsDecryption If true, this content extractor supports decrypting password protected documents.
(Inherited from IContentExtractor)
SupportsMetadataExtraction If true, this content extractor supports metadata extraction.
(Inherited from IContentExtractor)
SupportsTextExtraction If true, this content extractor supports text extraction.
(Inherited from IContentExtractor)

Methods

DisposePerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
(Inherited from IDisposable)
ExtractContent(String) Extracts archive metadata and item information, if available, from non-split supported archive and media image formats.
ExtractContent(Stream, String, String) Extracts archive metadata and item information, if available, from supported split (multi-file) archive or media image formats.
ExtractItem Extracts the archive file item to the specified stream. This method is for non-solid archives. See remarks.
ExtractSolidBlockItems Extracts archive items from a solid block compressed archive (IsSolid is true).
GetSplitSegmentStreamsInOrder Helper method to get all split (multi-file) archive or media image segment (volume) streams and filenames in proper order using filename pattern matching.
OverrideContentExtractionSettings Allows for overriding the ContentExtractionSettings object used by a IContentExtractor instance that was returned by a call to OpenDiscoverSDK.ContentExtractorFactory.GetContentExtractor. See remarks for limitations.
(Inherited from IContentExtractor)
TestItem Tests the true expansion size of an archive item without expanding all of the item's data into memory or to file system.
TestSolidBlockItems Tests the true expansion size of all solid block archive items without expanding the item data into memory or to file system.

Events

ContentExtractionHeartbeat Notification event that lets implementers of IContentExtractor know that content extraction is still under process. See remarks.
(Inherited from IContentExtractor)

See Also