TImageEnIO.ExtractFromStreamZIP
TImageEnIO.ExtractFromStreamZIP
Declaration
function ExtractFromStreamZIP(Stream: TStream; FileIndex: Integer; const DestFolder: string; UseFullPath: Boolean = True; const Password: string = ''): Boolean; overload;
function ExtractFromStreamZIP(Stream: TStream; FileIndexes: TCardinalArray; Count: Integer; const DestFolder: string; UseFullPath: Boolean = True; const Password: string = ''): Boolean; overload;
Description
Extracts one or all files from an archive streamm to the specified folder.
The following archive formats are supported: Zip, ZipX, EPub, 7z, BZip2, Cab, Rar, Tar, ISO, CHM and LZH.
Specify -1 to extract all files, or specify an index of a specific file. The file(s) will be output to the specified folder.
If UseFullPath = False, then all files will be output to the specified folder. If UseFullPath = True, then the folder structure of the zip will be created within the specified path.
If the file is encrypted you can specify the password (otherwise a password prompt can be displayed if you enable
AutoPromptForPassword. You can also use the
OnPassword event).
The result will be False if an error is encountered, e.g. the file in the stream is not a supported format or the
7z plug-in is not found (
Aborting will be True).
Note:
◼Archive extraction requires the
7z plug-in
◼ExtractFromStreamZIP does not reset the position of the stream, so you may need to first call Stream.Position := 0;
◼To abort while extracting set
Aborting to True
◼Read more about
ImageEn ZIP Support
Examples
// Extract all files from a zip file to D:\Out\ (Recreating the internal zip folder structure)
ImageEnView1.IO.ExtractFromStreamZIP( Stream, -1, 'D:\Out\', True );
// Extract the first file from a zip file to D:\Out\
ImageEnView1.IO.ExtractFromStreamZIP( Stream, 0, 'D:\Out\', False );
// Extract three files from a zip
images[0] := 2;
images[1] := 4;
images[2] := 5;
ImageEnView1.IO.ExtractFromStreamZIP( Stream, images, 3, 'D:\Out\', False );