List of usage examples for java.util.zip ZipEntry isDirectory
public boolean isDirectory()
From source file:net.rptools.lib.FileUtil.java
public static void unzipFile(File sourceFile, File destDir) throws IOException { if (!sourceFile.exists()) throw new IOException("source file does not exist: " + sourceFile); ZipFile zipFile = null;/*from w w w . j av a 2s . c o m*/ InputStream is = null; OutputStream os = null; try { zipFile = new ZipFile(sourceFile); Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (entry.isDirectory()) continue; File file = new File(destDir, entry.getName()); String path = file.getAbsolutePath(); file.getParentFile().mkdirs(); //System.out.println("Writing file: " + path); is = zipFile.getInputStream(entry); os = new BufferedOutputStream(new FileOutputStream(path)); copyWithClose(is, os); IOUtils.closeQuietly(is); IOUtils.closeQuietly(os); } } finally { IOUtils.closeQuietly(is); IOUtils.closeQuietly(os); try { if (zipFile != null) zipFile.close(); } catch (Exception e) { } } }
From source file:au.org.ands.vocabs.toolkit.utils.ToolkitFileUtils.java
/** Compress the files in the backup folder for a project. * @param projectId The project ID/*from ww w . j av a2 s . co m*/ * @throws IOException Any exception when reading/writing data. */ public static void compressBackupFolder(final String projectId) throws IOException { String backupPath = getBackupPath(projectId); if (!Files.isDirectory(Paths.get(backupPath))) { // No such directory, so nothing to do. return; } String projectSlug = makeSlug(projectId); // The name of the ZIP file that does/will contain all // backups for this project. Path zipFilePath = Paths.get(backupPath).resolve(projectSlug + ".zip"); // A temporary ZIP file. Any existing content in the zipFilePath // will be copied into this, followed by any other files in // the directory that have not yet been added. Path tempZipFilePath = Paths.get(backupPath).resolve("temp" + ".zip"); File tempZipFile = tempZipFilePath.toFile(); if (!tempZipFile.exists()) { tempZipFile.createNewFile(); } ZipOutputStream tempZipOut = new ZipOutputStream(new FileOutputStream(tempZipFile)); File existingZipFile = zipFilePath.toFile(); if (existingZipFile.exists()) { ZipFile zipIn = new ZipFile(existingZipFile); Enumeration<? extends ZipEntry> entries = zipIn.entries(); while (entries.hasMoreElements()) { ZipEntry e = entries.nextElement(); logger.debug("compressBackupFolder copying: " + e.getName()); tempZipOut.putNextEntry(e); if (!e.isDirectory()) { copy(zipIn.getInputStream(e), tempZipOut); } tempZipOut.closeEntry(); } zipIn.close(); } File dir = new File(backupPath); File[] files = dir.listFiles(); for (File source : files) { if (!source.getName().toLowerCase().endsWith(".zip")) { logger.debug("compressBackupFolder compressing and " + "deleting file: " + source.toString()); if (zipFile(tempZipOut, source)) { source.delete(); } } } tempZipOut.flush(); tempZipOut.close(); tempZipFile.renameTo(existingZipFile); }
From source file:com.cenrise.test.azkaban.Utils.java
public static void unzip(final ZipFile source, final File dest) throws IOException { final Enumeration<?> entries = source.entries(); while (entries.hasMoreElements()) { final ZipEntry entry = (ZipEntry) entries.nextElement(); final File newFile = new File(dest, entry.getName()); if (entry.isDirectory()) { newFile.mkdirs();/*from w ww. j a v a2 s .c o m*/ } else { newFile.getParentFile().mkdirs(); final InputStream src = source.getInputStream(entry); try { final OutputStream output = new BufferedOutputStream(new FileOutputStream(newFile)); try { IOUtils.copy(src, output); } finally { output.close(); } } finally { src.close(); } } } }
From source file:com.pari.mw.api.execute.reports.template.ReportTemplateRunner.java
public static File getTopLevelFolder(File zipFile) throws IOException { ZipInputStream in = null;/*from w w w .j a va 2 s .co m*/ try { in = new ZipInputStream(new FileInputStream(zipFile)); ZipEntry entry = null; while ((entry = in.getNextEntry()) != null) { String outFilename = entry.getName(); if (entry.isDirectory()) { return new File(outFilename); } } } finally { if (in != null) { in.close(); } } return null; }
From source file:com.pieframework.runtime.utils.Zipper.java
public static void unzip(String zipFile, String toDir) throws ZipException, IOException { int BUFFER = 2048; File file = new File(zipFile); ZipFile zip = new ZipFile(file); String newPath = toDir;/*w w w.j a v a 2s .c om*/ File toDirectory = new File(newPath); if (!toDirectory.exists()) { toDirectory.mkdir(); } Enumeration zipFileEntries = zip.entries(); // Process each entry while (zipFileEntries.hasMoreElements()) { // grab a zip file entry ZipEntry entry = (ZipEntry) zipFileEntries.nextElement(); String currentEntry = entry.getName(); File destFile = new File(newPath, FilenameUtils.separatorsToSystem(currentEntry)); //System.out.println(currentEntry); File destinationParent = destFile.getParentFile(); // create the parent directory structure if needed destinationParent.mkdirs(); if (!entry.isDirectory()) { BufferedInputStream is = new BufferedInputStream(zip.getInputStream(entry)); int currentByte; // establish buffer for writing file byte data[] = new byte[BUFFER]; // write the current file to disk FileOutputStream fos = new FileOutputStream(destFile); BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER); // read and write until last byte is encountered while ((currentByte = is.read(data, 0, BUFFER)) != -1) { dest.write(data, 0, currentByte); } dest.flush(); dest.close(); is.close(); } } zip.close(); }
From source file:net.firejack.platform.core.utils.ArchiveUtils.java
/** * @param zip/* www .j av a 2 s . com*/ * @param name * @return * @throws java.io.IOException */ public static InputStream getFile(InputStream zip, String name) throws IOException { ZipInputStream in = new ZipInputStream(zip); ZipEntry entry; while ((entry = in.getNextEntry()) != null) { String entityName = entry.getName(); if (!entry.isDirectory() && entityName.contains(name)) { return in; } } in.close(); return null; }
From source file:com.mc.printer.model.utils.ZipHelper.java
/** * jar????//from www . j av a 2s . co m * * @param jar ????jar * @param subDir jar??????? * @param loc ???? * @param force ???? * @return */ public static boolean unZip(String jar, String subDir, String loc, boolean force) { try { File base = new File(loc); if (!base.exists()) { base.mkdirs(); } ZipFile zip = new ZipFile(new File(jar)); Enumeration<? extends ZipEntry> entrys = zip.entries(); while (entrys.hasMoreElements()) { ZipEntry entry = entrys.nextElement(); String name = entry.getName(); if (!name.startsWith(subDir)) { continue; } //subDir name = name.replace(subDir, "").trim(); if (name.length() < 2) { log.debug(name + " < 2"); continue; } if (entry.isDirectory()) { File dir = new File(base, name); if (!dir.exists()) { dir.mkdirs(); log.debug("create directory"); } else { log.debug("the directory is existing."); } log.debug(name + " is a directory"); } else { File file = new File(base, name); if (file.exists() && force) { file.delete(); } if (!file.exists()) { InputStream in = zip.getInputStream(entry); FileUtils.copyInputStreamToFile(in, file); log.debug("create file."); in.close(); } else { log.debug("the file is existing"); } log.debug(name + " is not a directory"); } } zip.close(); } catch (ZipException ex) { ex.printStackTrace(); log.error("file unzip failed.", ex); return false; } catch (IOException ex) { ex.printStackTrace(); log.error("file IO failed", ex); return false; } return true; }
From source file:net.firejack.platform.core.utils.ArchiveUtils.java
/** * @param stream zip input stream//from w w w . j a va2 s . c o m * @param dir directory to unzip * @param unique if need add unique suffix to every file name then true * @throws java.io.IOException * @return list of unzipped file names */ public static List<String> unZIP(InputStream stream, File dir, boolean unique) throws IOException { Long createdTime = new Date().getTime(); String randomName = SecurityHelper.generateRandomSequence(16); List<String> fileNames = new ArrayList<String>(); ZipInputStream in = new ZipInputStream(stream); ZipEntry entry; while ((entry = in.getNextEntry()) != null) { String name = entry.getName(); if (entry.isDirectory()) { FileUtils.forceMkdir(new File(dir, name)); } else { String dirName = ""; if (name.contains("/") && !File.separator.equals("/")) name = name.replaceAll("/", File.separator + File.separator); if (name.contains("\\") && !File.separator.equals("\\")) name = name.replaceAll("\\\\", File.separator); if (name.lastIndexOf(File.separator) != -1) dirName = name.substring(0, name.lastIndexOf(File.separator)); String fileName = name.substring(name.lastIndexOf(File.separator) + 1, name.length()); if (unique) { fileName = fileName + "." + randomName + "." + createdTime; } OutputStream out = FileUtils.openOutputStream(FileUtils.create(dir, dirName, fileName)); IOUtils.copy(in, out); IOUtils.closeQuietly(out); fileNames.add(fileName); } } IOUtils.closeQuietly(in); return fileNames; }
From source file:azkaban.common.utils.Utils.java
public static void unzip(ZipFile source, File dest) throws IOException { Enumeration<?> entries = source.entries(); while (entries.hasMoreElements()) { ZipEntry entry = (ZipEntry) entries.nextElement(); File newFile = new File(dest, entry.getName()); if (entry.isDirectory()) { newFile.mkdirs();/*from w ww. j a v a 2s . c o m*/ } else { newFile.getParentFile().mkdirs(); InputStream src = source.getInputStream(entry); OutputStream output = new BufferedOutputStream(new FileOutputStream(newFile)); IOUtils.copy(src, output); src.close(); output.close(); } } }
From source file:com.seleniumtests.util.FileUtility.java
public static void extractJar(final String storeLocation, final Class<?> clz) throws IOException { File firefoxProfile = new File(storeLocation); String location = clz.getProtectionDomain().getCodeSource().getLocation().getFile(); try (JarFile jar = new JarFile(location);) { logger.info("Extracting jar file::: " + location); firefoxProfile.mkdir();/*from w ww .ja v a 2 s . c o m*/ Enumeration<?> jarFiles = jar.entries(); while (jarFiles.hasMoreElements()) { ZipEntry entry = (ZipEntry) jarFiles.nextElement(); String currentEntry = entry.getName(); File destinationFile = new File(storeLocation, currentEntry); File destinationParent = destinationFile.getParentFile(); // create the parent directory structure if required destinationParent.mkdirs(); if (!entry.isDirectory()) { BufferedInputStream is = new BufferedInputStream(jar.getInputStream(entry)); int currentByte; // buffer for writing file byte[] data = new byte[BUFFER]; // write the current file to disk try (FileOutputStream fos = new FileOutputStream(destinationFile);) { BufferedOutputStream destination = new BufferedOutputStream(fos, BUFFER); // read and write till last byte while ((currentByte = is.read(data, 0, BUFFER)) != -1) { destination.write(data, 0, currentByte); } destination.flush(); destination.close(); is.close(); } } } } FileUtils.deleteDirectory(new File(storeLocation + "\\META-INF")); if (OSUtility.isWindows()) { new File(storeLocation + "\\" + clz.getCanonicalName().replaceAll("\\.", "\\\\") + ".class").delete(); } else { new File(storeLocation + "/" + clz.getCanonicalName().replaceAll("\\.", "/") + ".class").delete(); } }