I don't know what you mean by "total size".
For each entry, there are 2 size quantities, compressed and uncompressed size. These quantities are known as the entries are zipped, not as they are added. In DotNetZip, "add" means the files are added to the list of files to be zipped, upon
Save(). There's little information collected at the time of Add.
In your own AddProgress evvent handler, you could instantiate a FileInfo() for each file being added, and compute the aggregate uncompressed size of all entries being added. This works only if all entries are filesystem files. It's possible that
some entries are streams, in which case you won't know the size of the uncompressed entry until you read the stream all the way through.
Within a SaveProgress event handler, your application can get the total bytes to read (on-disk size of the file) and the total bytes read so far. After each entry has been completely compressed, the SaveProgress event fires again, and at that
point you can get the compressed size of the entry.
There's no way to know the total size of the zip file until after compression completes.
Check the documentation for the SaveProgress event for an illustration of how to do it.