From 5c6f2bbbcb786916eb7ce7aa06d9cccb7831291c Mon Sep 17 00:00:00 2001 From: rusefi Date: Fri, 3 Jul 2020 00:21:02 -0400 Subject: [PATCH] better directory handling --- .../src/main/java/com/rusefi/shared/FileUtil.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/java_console/shared_io/src/main/java/com/rusefi/shared/FileUtil.java b/java_console/shared_io/src/main/java/com/rusefi/shared/FileUtil.java index 18e06085da..9dd2965baf 100644 --- a/java_console/shared_io/src/main/java/com/rusefi/shared/FileUtil.java +++ b/java_console/shared_io/src/main/java/com/rusefi/shared/FileUtil.java @@ -10,15 +10,18 @@ import java.util.zip.ZipInputStream; public class FileUtil { public static final String RUSEFI_SETTINGS_FOLDER = System.getProperty("user.home") + File.separator + ".rusEFI"; - public static void unzip(String zipFileName, String destPath) throws IOException { - File destDir = new File(destPath); + public static void unzip(String zipFileName, File destDir) throws IOException { byte[] buffer = new byte[1024]; ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFileName)); ZipEntry zipEntry = zis.getNextEntry(); while (zipEntry != null) { File newFile = newFile(destDir, zipEntry); - if (newFile.isDirectory()) { - System.out.println("Nothing to do for directory " + newFile); + if (zipEntry.isDirectory()) { + if (!newFile.isDirectory()) { + // we already have a file with name matching directory name + newFile.delete(); + } + newFile.mkdirs(); } else { unzipFile(buffer, zis, newFile); } @@ -26,7 +29,7 @@ public class FileUtil { } zis.closeEntry(); zis.close(); - System.out.println("Unzip " + zipFileName + " to " + destPath + " worked!"); + System.out.println("Unzip " + zipFileName + " to " + destDir + " worked!"); } private static void unzipFile(byte[] buffer, ZipInputStream zis, File newFile) throws IOException {