Click or drag to resize

IArchiveExtractor Interface

Archive content extractor interface.

Namespace: OpenDiscoverSDK.Interfaces.Extractors
Assembly: OpenDiscoverSDK.Interfaces (in OpenDiscoverSDK.Interfaces.dll) Version: 2025.4.4.0 (2025.4.4)
Syntax
C#
public interface IArchiveExtractor : IContentExtractor, 
	IDisposable

The IArchiveExtractor type exposes the following members.

Properties
 NameDescription
Public propertyCalculateArchiveBinaryHash If true, instructs the IArchiveExtractor to calculate the archive binary hash (default value). If false, the archive will NOT be hashed.
Public propertyContentExtractorType The derived, actual content extractor interface type.
(Inherited from IContentExtractor)
Public propertyIsSolid 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.
Public propertyIsSplit If true, this archive is a split (multi-file) archive.
Public propertyLength Gets the document's length in bytes.
(Inherited from IContentExtractor)
Public propertySupportsChildrenExtraction If true, this content extractor supports attachment, embedded item, or container item extraction.
(Inherited from IContentExtractor)
Public propertySupportsDecryption If true, this content extractor supports decrypting password protected documents.
(Inherited from IContentExtractor)
Public propertySupportsMetadataExtraction If true, this content extractor supports metadata extraction.
(Inherited from IContentExtractor)
Public propertySupportsTextExtraction If true, this content extractor supports text extraction.
(Inherited from IContentExtractor)
Top
Methods
 NameDescription
Public methodDisposePerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
(Inherited from IDisposable)
Public methodExtractContent(String) Extracts archive metadata and item information, if available, from non-split supported archive and media image formats.
Public methodExtractContent(Stream, String, String) Extracts archive metadata and item information, if available, from supported split (multi-file) archive or media image formats.
Public methodExtractItem Extracts the archive file item to the specified stream. This method is for non-solid archives. See remarks.
Public methodExtractSolidBlockItems Extracts archive items from a solid block compressed archive (IsSolid is true).
Public methodGetSplitSegmentStreamsInOrder Helper method to get all split (multi-file) archive or media image segment (volume) streams and filenames in proper order using filename pattern matching.
Public methodOverrideContentExtractionSettings 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)
Public methodTestItem Tests the true expansion size of an archive item without expanding all of the item's data into memory or to file system.
Public methodTestSolidBlockItems Tests the true expansion size of all solid block archive items without expanding the item data into memory or to file system.
Top
Events
 NameDescription
Public eventContentExtractionHeartbeat Notification event that lets implementers of IContentExtractor know that content extraction is still under process. See remarks.
(Inherited from IContentExtractor)
Top
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).

See Also