ImageEn, unit imageenio

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 ZIP archive streamm to the specified folder.
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 will be displayed if AutoPromptForPassword is enabled).
The result will be false if an error is encountered, e.g. the file in the stream is not ZIP format or a ZIP plug-in is not found (Aborting will be true).



Note:
ZIP extraction requires the 7z plug-in from: www.imageen.com/download/
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 );