!include once #1024944 // Apache Commons Compress import org.apache.commons.compress.archivers.tar.*; svoid zip2tar(File inZip, File outTar) ctex { temp FileOutputStream out = newFileOutputStream(outTar); zip2tar(inZip, out); } svoid zip2tar(File inZip, OutputStream out) { zip2tar(inZip, bufferedOutputStream(out)); } svoid zip2tar(File inZip, BufferedOutputStream out) ctex { TarArchiveOutputStream tarOut = new(out); tarOut.setLongFileMode(tarOut.LONGFILE_GNU); zip2tar(inZip, tarOut); out.flush(); } svoid zip2tar(File inZip, TarArchiveOutputStream outTar) ctex { ZipFile zipFile = new ZipFile(inZip); Enumeration entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = (ZipEntry) entries.nextElement(); //System.out.println("Copying " + entry.getName()); TarArchiveEntry te = new(entry.getName()); te.setModTime(entry.getTime()); te.setSize(entry.getSize()); outTar.putArchiveEntry(te); InputStream fin = zipFile.getInputStream(entry); copyStream(fin, outTar); fin.close(); outTar.closeArchiveEntry(); } outTar.flush(); zipFile.close(); }