[delphizip] Problem when using large FSpecArgs counts

  • From: "Angus Johnson" <ajohnson@xxxxxxxxxx>
  • To: <delphizip@xxxxxxxxxxxxx>
  • Date: Thu, 14 Mar 2002 11:52:57 +1100

Hello again to all.

There seems to be a problem with the Unzdll.dll (with Ver160  at least) when
extracting large numbers of files (eg >1000) and when not using wildcard
filespecs.

I think this problem arises in the  extract_or_test_files() function in
Extract.c in the section headed:

/*--------------------------------------------------------------------------
-
  *  RCV Added: Calculate number of files to process and the total file
size.

*---------------------------------------------------------------------------
*/
in the "while ( members_remaining )" loop.

As the filespecs count increases, the time taken for this loop to complete
increases exponentially, and any application will appear to "hang" till this
is completed.

There must be a better way to handle this. As this loop is an addition to
the original code,
what functionality was missing before this? If it's mainly to check total
file size prior to extraction, then I think, as a minimum, it would be a
good idea to avoid this loop when extracting to non-removable media. (I
would've liked to have spent more time thinking about these issues before
raising the problem, but I currently have other things on my mind <sigh>.)

On a related note - is there any plan to remove the limitations set by
FileMax (max no. of files in a Zip file) which is currently 4096 (see
Zcallbck.pas)?

Angus


Other related posts: