com.aeontronix.commons.ArchiveUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aeon-commons-core Show documentation
Show all versions of aeon-commons-core Show documentation
Various utility classes. Except for very rare exceptions (annotation-based validation) this will not
require any dependencies beyond the JRE
The newest version!
package com.aeontronix.commons;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ArchiveUtils {
public static void zipDir(String dir, File zipFile) throws IOException {
zipDir(new File(dir), zipFile);
}
public static void zipDir(File dir, File zipFile) throws IOException {
final Path sourceDir = dir.toPath();
try (ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(zipFile))) {
Files.walkFileTree(sourceDir, new SimpleFileVisitor() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) throws IOException {
Path targetFile = sourceDir.relativize(file);
outputStream.putNextEntry(new ZipEntry(targetFile.toString()));
byte[] bytes = Files.readAllBytes(file);
outputStream.write(bytes, 0, bytes.length);
outputStream.closeEntry();
return FileVisitResult.CONTINUE;
}
});
}
}
}