I have a zip file with the structure like: xml.zip
- Root Folder: package
- Folder: Subfolder.zip
- Inside Subfolder.zip :
- Root Folder: _
- Folder: var
- Folder: run
- Folder: xmls
- Xml1.xml
- Xml2.xml
- Folder: xmls
- Xml3.xml
- Folder: run
- Folder: var
- Root Folder: _
- Inside Subfolder.zip :
- Folder: Subfolder.zip
Is there a way to read in these three files recursively with the above structure? I've tried using ZipInputStream and ZipArchiveInputStream, but zip.getNextEntry() keeps returning null.. due to the nested zip. Anyway to recursively use it?
private void readZipFileStream(final InputStream zipFileStream) {
final ZipInputStream zipInputStream = new ZipInputStream(zipFileStream);
ZipEntry zipEntry;
try {
zipEntry = zipInputStream.getNextEntry();
while(zipEntry.getName() != null) {
System.out.println("name of zip entry: " + zipEntry.getName());
if (!zipEntry.isDirectory()) {
System.out.println("1."+zipInputStream.available());
System.out.println("2."+zipEntry.getName());
System.out.println("3."+zipEntry.isDirectory());
System.out.println("4."+zipEntry.getSize());
} else {
readZipFileStream(zipInputStream);
}
zipEntry = zipInputStream.getNextEntry();
}
// }
} catch (IOException e) {
e.printStackTrace();
}
}
Can someone please help?