In general, this class seems to me to have the following high level functions:

* packaging up files/streams in to a zip
* generating names for files/entries
* generating a download report
* determining what needs to be downloaded
* actually downloading the individual items

There might be an opportunity to factor out some or all of these (and anything that I've missed) in to separate classes, so that this class is really just a co-ordinator.