Для работы с zip архивами в java существует стандартный пакет java.util.zip, с использованием которого также можно запаковывать и распаковывать архивы формата gzip.
Ниже приведен исходный код метода для архивирования директории со всем её содержимым
private static void directoryToZip(File directory, File zipFile) throws IOException { URI base = directory.toURI(); Dequequeue = new LinkedList (); queue.push(directory); OutputStream out = new FileOutputStream(zipFile); Closeable res = out; try { ZipOutputStream zout = new ZipOutputStream(out); res = zout; while (!queue.isEmpty()) { directory = queue.pop(); for (File child : directory.listFiles()) { String name = base.relativize(child.toURI()).getPath(); if (child.isDirectory()) { queue.push(child); name = name.endsWith("/") ? name : name + "/"; zout.putNextEntry(new ZipEntry(name)); } else { zout.putNextEntry(new ZipEntry(name)); InputStream in = new FileInputStream(child); try { byte[] buffer = new byte[1024]; while (true) { int readCount = in.read(buffer); if (readCount < 0) { break; } zout.write(buffer, 0, readCount); } } finally { in.close(); } zout.closeEntry(); } } } } finally { res.close(); } }
Спасибо
ОтветитьУдалитьСпасибо, помогла инфа)
ОтветитьУдалить