Reputation: 696
How can I add/modify/delete/merge recursive directory in a zip file (in Java) without file system?
Do I have to respect the order of zip entries?
Yes, I know merging directories is very complex job..
Upvotes: 1
Views: 330
Reputation: 5916
There is no simple answer, your going to need to write a faire bit of code. You can't use the JDK ZipFile class, as that only supports reading zip files.
Instead use Commons Compress. Have a look at the examples and the zip documentation to get going.
Basically you'll need to open an input zip file, and an output zip file. Read each entry in tern, and decide whether to write it to the output, transform and write, add a new entry, or skip it, . When you get to the end close both zip files.
When processing a zip file, it's not really recursive, as all the entries are just a linear list with a path and filename. The recursive part comes when a zip contains a zip, and that is quite easy to handle.
Upvotes: 1
Reputation: 4693
If you need to add whole directory with files to zip archive recursively only by Java core efforts, then you can use good example from Mkyong's blog. If you need to append files to existing zip-file, the you should use a link from @McDowell's comment: Appending files to a zip file with Java
Upvotes: 2