List of usage examples for java.util.zip ZipEntry isDirectory
public boolean isDirectory()
From source file:com.chinamobile.bcbsp.fault.tools.Zip.java
/** * Uncompress *.zip files.// w w w . j av a 2s . c o m * @param fileName * : file to be uncompress */ @SuppressWarnings("unchecked") public static void decompress(String fileName) { File sourceFile = new File(fileName); String filePath = sourceFile.getParent() + "/"; try { BufferedInputStream bis = null; BufferedOutputStream bos = null; ZipFile zipFile = new ZipFile(fileName); Enumeration en = zipFile.entries(); byte[] data = new byte[BUFFER]; while (en.hasMoreElements()) { ZipEntry entry = (ZipEntry) en.nextElement(); if (entry.isDirectory()) { new File(filePath + entry.getName()).mkdirs(); continue; } bis = new BufferedInputStream(zipFile.getInputStream(entry)); File file = new File(filePath + entry.getName()); File parent = file.getParentFile(); if (parent != null && (!parent.exists())) { parent.mkdirs(); } bos = new BufferedOutputStream(new FileOutputStream(file)); int count; while ((count = bis.read(data, 0, BUFFER)) != -1) { bos.write(data, 0, count); } bis.close(); bos.close(); } zipFile.close(); } catch (IOException e) { //LOG.error("[compress]", e); throw new RuntimeException("[compress]", e); } }
From source file:com.aliyun.odps.local.common.utils.ArchiveUtils.java
/** * Given a File input it will unzip the file in a the unzip directory passed * as the second parameter/*from w ww. ja v a2s . c om*/ * * @param inFile * The zip file as input * @param unzipDir * The unzip directory where to unzip the zip file. * @throws IOException */ public static void unZip(File inFile, File unzipDir) throws IOException { Enumeration<? extends ZipEntry> entries; ZipFile zipFile = new ZipFile(inFile); try { entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (!entry.isDirectory()) { InputStream in = zipFile.getInputStream(entry); try { File file = new File(unzipDir, entry.getName()); if (!file.getParentFile().mkdirs()) { if (!file.getParentFile().isDirectory()) { throw new IOException("Mkdirs failed to create " + file.getParentFile().toString()); } } OutputStream out = new FileOutputStream(file); try { byte[] buffer = new byte[8192]; int i; while ((i = in.read(buffer)) != -1) { out.write(buffer, 0, i); } } finally { out.close(); } } finally { in.close(); } } } } finally { zipFile.close(); } }
From source file:eurecom.constrained.devices.ReadZipFile.java
protected static File file(final File root, final ZipEntry entry) throws IOException { final File file = new File(root, entry.getName()); File parent = file;// w ww. j av a 2 s .c om if (!entry.isDirectory()) { final String name = entry.getName(); //get name file from the zip FILE_TO_LOAD.add(name); final int index = name.lastIndexOf('/'); if (index != -1) { parent = new File(root, name.substring(0, index)); } } if (parent != null && !parent.isDirectory() && !parent.mkdirs()) { throw new IOException("failed to create a directory: " + parent.getPath()); } return file; }
From source file:io.fabric8.vertx.maven.plugin.utils.WebJars.java
public static void extract(final AbstractVertxMojo mojo, File in, File out, boolean stripVersion) throws IOException { ZipFile file = new ZipFile(in); try {//from w w w .ja va 2 s .c om Enumeration<? extends ZipEntry> entries = file.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (entry.getName().startsWith(WEBJAR_LOCATION) && !entry.isDirectory()) { // Compute destination. File output = new File(out, entry.getName().substring(WEBJAR_LOCATION.length())); if (stripVersion) { String path = entry.getName().substring(WEBJAR_LOCATION.length()); Matcher matcher = WEBJAR_INTERNAL_PATH_REGEX.matcher(path); if (matcher.matches()) { output = new File(out, matcher.group(1) + "/" + matcher.group(3)); } else { mojo.getLog().warn(path + " does not match the regex - did not strip the version for this" + " file"); } } InputStream stream = null; try { stream = file.getInputStream(entry); output.getParentFile().mkdirs(); org.apache.commons.io.FileUtils.copyInputStreamToFile(stream, output); } catch (IOException e) { mojo.getLog().error("Cannot unpack " + entry.getName() + " from " + file.getName(), e); throw e; } finally { IOUtils.closeQuietly(stream); } } } } finally { IOUtils.closeQuietly(file); } }
From source file:com.nuvolect.deepdive.probe.ApkZipUtil.java
public static boolean unzip(OmniFile zipOmni, OmniFile targetDir, ProgressStream progressStream) { String volumeId = zipOmni.getVolumeId(); String rootFolderPath = targetDir.getPath(); boolean DEBUG = true; ZipInputStream zis = new ZipInputStream(zipOmni.getFileInputStream()); ZipEntry entry = null; try {//from w ww .j av a 2 s. c om while ((entry = zis.getNextEntry()) != null) { if (entry.isDirectory()) { OmniFile dir = new OmniFile(volumeId, entry.getName()); if (dir.mkdir()) { if (DEBUG) LogUtil.log(LogUtil.LogType.OMNI_ZIP, "dir created: " + dir.getPath()); } } else { String path = rootFolderPath + "/" + entry.getName(); OmniFile file = new OmniFile(volumeId, path); // Create any necessary directories file.getParentFile().mkdirs(); OutputStream out = file.getOutputStream(); OmniFiles.copyFileLeaveInOpen(zis, out); if (DEBUG) LogUtil.log(LogUtil.LogType.OMNI_ZIP, "file created: " + file.getPath()); progressStream.putStream("Unpacked: " + entry.getName()); } } zis.close(); } catch (IOException e) { LogUtil.logException(LogUtil.LogType.OMNI_ZIP, e); return false; } return true; }
From source file:Main.java
private static void fileUnZip(ZipInputStream zis, File file) throws FileNotFoundException, IOException { java.util.zip.ZipEntry zip = null; while ((zip = zis.getNextEntry()) != null) { String name = zip.getName(); File f = new File(file.getAbsolutePath() + File.separator + name); if (zip.isDirectory()) { f.mkdirs();/*www. jav a2s . com*/ } else { f.getParentFile().mkdirs(); f.createNewFile(); BufferedOutputStream bos = null; try { bos = new BufferedOutputStream(new FileOutputStream(f)); byte b[] = new byte[2048]; int aa = 0; while ((aa = zis.read(b)) != -1) { bos.write(b, 0, aa); } bos.flush(); } finally { bos.close(); } bos.close(); } } }
From source file:Main.java
public static boolean unzipFile(InputStream fis, String destDir) { final byte[] buffer = new byte[4096]; ZipInputStream zis = null;/*from w ww. j a v a2s . com*/ Log.e("Unzip", "destDir = " + destDir); try { // make sure the directory is existent File dstFile = new File(destDir); if (!dstFile.exists()) { dstFile.mkdirs(); } else { int fileLenght = dstFile.listFiles().length; if (fileLenght >= 2) { return true; } } zis = new ZipInputStream(fis); ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { String fileName = entry.getName(); if (entry.isDirectory()) { new File(destDir, fileName).mkdirs(); } else { BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(new File(destDir, fileName))); int lenRead; while ((lenRead = zis.read(buffer)) != -1) { bos.write(buffer, 0, lenRead); } bos.close(); } zis.closeEntry(); } return true; } catch (IOException e) { e.printStackTrace(); } finally { if (zis != null) { try { zis.close(); } catch (IOException e) { e.printStackTrace(); } } } return false; }
From source file:com.microsoft.azure.hdinsight.util.HDInsightJobViewUtils.java
public static void unzip(String zipFilePath, String destDirectory) throws IOException { File destDir = new File(destDirectory); if (!destDir.exists()) { destDir.mkdir();/*w w w. j a v a2s . co m*/ } ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath)); ZipEntry entry = zipIn.getNextEntry(); while (entry != null) { String filePath = destDirectory + File.separator + entry.getName(); if (!entry.isDirectory()) { extractFile(zipIn, filePath); } else { File dir = new File(filePath); dir.mkdir(); } zipIn.closeEntry(); entry = zipIn.getNextEntry(); } zipIn.close(); }
From source file:eu.openanalytics.rsb.message.MultiFilesJob.java
/** * Adds all the files contained in a Zip archive to a job. Rejects Zips that * contain sub-directories./*w w w . j a v a2s . co m*/ * * @param data * @param job * @throws IOException */ public static void addZipFilesToJob(final InputStream data, final MultiFilesJob job) throws IOException { final ZipInputStream zis = new ZipInputStream(data); ZipEntry ze = null; while ((ze = zis.getNextEntry()) != null) { if (ze.isDirectory()) { job.destroy(); throw new IllegalArgumentException("Invalid zip archive: nested directories are not supported"); } job.addFile(ze.getName(), zis); zis.closeEntry(); } IOUtils.closeQuietly(zis); }
From source file:com.nuvolect.deepdive.probe.ApkZipUtil.java
/** * Unzip while excluding XML files into the target directory. * The added structure is updated to reflect any new files and directories created. * Overwrite files when requested./*from ww w. ja v a 2 s . c o m*/ * @param zipOmni * @param targetDir * @param progressStream * @return */ public static boolean unzipAllExceptXML(OmniFile zipOmni, OmniFile targetDir, ProgressStream progressStream) { String volumeId = zipOmni.getVolumeId(); String rootFolderPath = targetDir.getPath(); boolean DEBUG = true; ZipInputStream zis = new ZipInputStream(zipOmni.getFileInputStream()); ZipEntry entry = null; try { while ((entry = zis.getNextEntry()) != null) { if (entry.isDirectory()) { OmniFile dir = new OmniFile(volumeId, entry.getName()); if (dir.mkdir()) { if (DEBUG) LogUtil.log(LogUtil.LogType.OMNI_ZIP, "dir created: " + dir.getPath()); } } else { String path = rootFolderPath + "/" + entry.getName(); OmniFile file = new OmniFile(volumeId, path); if (!FilenameUtils.getExtension(file.getName()).contentEquals("xml")) { // Create any necessary directories file.getParentFile().mkdirs(); OutputStream out = file.getOutputStream(); OmniFiles.copyFileLeaveInOpen(zis, out); if (DEBUG) LogUtil.log(LogUtil.LogType.OMNI_ZIP, "file created: " + file.getPath()); progressStream.putStream("Unpacked: " + entry.getName()); } } } zis.close(); } catch (IOException e) { LogUtil.logException(LogUtil.LogType.OMNI_ZIP, e); return false; } return true; }