Slow and undone code in ziputils.pas and zipper.pp from PasZLib package
ziputils.pas Looks like code for work with streams will not use/work coz file have definitions:
interface
{$undef UseStream}
{$ifdef WIN32}
{$define Delphi}
{$ifdef UseStream}
{$define Streams}
{$endif}
{$endif}
//uses Classes, SysUtils;
zipper.pp I got VERY SLOW work when i tried to unpack some files 1 by 1. Discovering shows what UnZipFile function calls lot of similar overloads: UnZipFile -> UnZipFiles -> UnZipAllFiles with file list creation even for single file. And UnZipAllFiles function have another slowliness: line 2918: ReadZipDirectory, recreate zip files directory even if it didn't changed line 2920: FTotSize := CalcTotalSize(AllFiles); doing lot of useless operations in case of single file and useless (didn't call) at all in case of FOnProgressEx is not assigned.
Edited by Awkward