Merge pull request #10268 from eugenp/BAEL-3641

BAEL-3641 fix for creating directories inside a zip and handling miss…
This commit is contained in:
Loredana Crusoveanu 2020-11-23 15:17:36 +02:00 committed by GitHub
commit 02a3978fae
1 changed files with 20 additions and 9 deletions

View File

@ -16,12 +16,23 @@ public class UnzipFile {
ZipEntry zipEntry = zis.getNextEntry();
while (zipEntry != null) {
final File newFile = newFile(destDir, zipEntry);
if (zipEntry.isDirectory()) {
if (!newFile.isDirectory() && !newFile.mkdirs()) {
throw new IOException("Failed to create directory " + newFile);
}
} else {
File parent = newFile.getParentFile();
if (!parent.isDirectory() && !parent.mkdirs()) {
throw new IOException("Failed to create directory " + parent);
}
final FileOutputStream fos = new FileOutputStream(newFile);
int len;
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
}
zipEntry = zis.getNextEntry();
}
zis.closeEntry();