public void unzip()

in maven-wrapper/src/main/java/org/apache/maven/wrapper/Installer.java [177:201]


    public void unzip(Path zip, Path dest) throws IOException {
        final Path destDir = dest.normalize();
        try (ZipFile zipFile = new ZipFile(zip.toFile())) {
            final Enumeration<? extends ZipEntry> entries = zipFile.entries();

            while (entries.hasMoreElements()) {
                final ZipEntry entry = entries.nextElement();

                Path fileEntry = destDir.resolve(entry.getName()).normalize();
                if (!fileEntry.startsWith(destDir)) {
                    throw new ZipException("Zip includes an invalid entry: " + entry.getName());
                }

                if (entry.isDirectory()) {
                    continue;
                }

                Files.createDirectories(fileEntry.getParent());

                try (InputStream inStream = zipFile.getInputStream(entry)) {
                    Files.copy(inStream, fileEntry);
                }
            }
        }
    }