X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.utils%2Fsrc%2Forg%2Fsimantics%2Futils%2FFileUtils.java;h=c887126c29396ca21c802b2e1f5443d8b1597fad;hb=6f670c158813642568f8a9c1ed10bceec1d76cc3;hp=44a3dfcf5731b9ff2c9334959a66e3463416f283;hpb=2e3059173c832162591f28579b8e657ee392c2e9;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.utils/src/org/simantics/utils/FileUtils.java b/bundles/org.simantics.utils/src/org/simantics/utils/FileUtils.java index 44a3dfcf5..c887126c2 100644 --- a/bundles/org.simantics.utils/src/org/simantics/utils/FileUtils.java +++ b/bundles/org.simantics.utils/src/org/simantics/utils/FileUtils.java @@ -28,6 +28,7 @@ import java.net.URI; import java.net.URL; import java.nio.channels.FileChannel; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; @@ -848,7 +849,14 @@ public class FileUtils { extractZip(fis, dst); } } - + + public static void extractZip(File zipFile, File dst, Charset charset) throws IOException { + if (LOGGER.isTraceEnabled()) + LOGGER.trace("Extracting zip "+zipFile); + try (FileInputStream fis = new FileInputStream(zipFile)) { + extractZip(fis, dst, charset); + } + } /** * Extract a zip file into a directory * @@ -857,8 +865,12 @@ public class FileUtils { * @throws IOException */ public static void extractZip(InputStream zipInput, File dst) throws IOException { + extractZip(zipInput, dst, StandardCharsets.UTF_8); + } + + public static void extractZip(InputStream zipInput, File dst, Charset charset) throws IOException { byte[] buf = new byte[8192]; - ZipInputStream zis = new ZipInputStream(zipInput); + ZipInputStream zis = new ZipInputStream(zipInput, charset); ZipEntry entry; entry = zis.getNextEntry();