IArchive |
public interface IArchiveExtractor : IContentExtractor, IDisposable
The IArchiveExtractor type exposes the following members.
| Name | Description | |
|---|---|---|
| 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) |
| Name | Description | |
|---|---|---|
| Dispose | Performs 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. |
| Name | Description | |
|---|---|---|
| ContentExtractionHeartbeat |
Notification event that lets implementers of IContentExtractor know that content extraction is still under process. See remarks.
(Inherited from IContentExtractor) |
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). |