private static void extractGenericArchive()

in src/main/java/org/apache/netbeans/nbpackage/ArchiveUtils.java [150:170]


    private static void extractGenericArchive(InputStream inputStream, Path extractToDirectory)
            throws ArchiveException, IOException {
        final ArchiveInputStream archiveInputStream = new ArchiveStreamFactory().createArchiveInputStream(inputStream);

        ArchiveEntry entry;
        while ((entry = archiveInputStream.getNextEntry()) != null) {
            if (!archiveInputStream.canReadEntryData(entry)) {
                LOG.log(System.Logger.Level.ERROR, "Failed to read archive entry " + entry);
                continue;
            }

            Path entryExtractPath = extractToDirectory.resolve(getEntryAsPath(entry));
            if (entry.isDirectory()) {
                Files.createDirectories(entryExtractPath);
            } else {
                Files.createDirectories(entryExtractPath.getParent());
                Files.copy(archiveInputStream, entryExtractPath, StandardCopyOption.REPLACE_EXISTING);
            }
            Files.setLastModifiedTime(entryExtractPath, FileTime.fromMillis(entry.getLastModifiedDate().getTime()));
        }
    }