Linking many files to a single file - Zip

I’m not fixed to PK zip only - but I have many files that will not compress well because they contain pictures. What is more important is read access speed of each file from the file. And to use a small file name to identify each file in the file. Must be very robust.
So what is out their that people have used?

Why do you need a zip - what problem are you actually trying to solve?

I have a number of separate streams that in my code each is named and it can be easily get to 20 files and sometimes grow to 1,000. If they combined into one file its a good simple way to mange them and one does not get lost if in a OS file system.
Some files are steps to other files in the access process.

The order I store them in is not important because each has an identity name so the identity name is ago file name.
I could run two files one to read and another to build a new file using streams but would that not be easier in a uncompressed zip

If you use delphi’s TZipFile you can just add the files to the zip file without compression. Something like below.

uses
  System.Zip;

procedure CreateZipWithoutCompression;
var
  Zip: TZipFile;
begin
  Zip := TZipFile.Create;
  try
    Zip.Open('output.zip', zmWrite);
    Zip.Add('image.png', '', zcStored); // zcStored = No Compression
    Zip.Close;
  finally
    Zip.Free;
  end;
end;

begin
  CreateZipWithoutCompression;
end.

Thanks Jeff I just did not know where to look or what to look for
I found

Zip.Extract('File1.dat', GetLibraryPath);

that should work but can Zip take streams straight out of Delphi? with a name - save
load, save over old data work in both directions. Or can I use something else to do that. Extracting a file out and then putting it into a stream is double handling?

Oh I can load Zip to streams and streams to zip With read
I’m away thanks