private void unzip(File dir, File zipFile) throws IOException { ZipFile zip = new ZipFile(zipFile); @SuppressWarnings("unchecked") Enumeration<ZipEntry> entries = zip.getEntries(); mkdirs(p); try (InputStream input = zip.getInputStream(e)) { IOUtils.copy(input, writing(f)); zip.close();
int pling = uri.indexOf("!/"); if (uri.startsWith("jar:file") && pling > -1) { zf = new ZipFile(org.apache.tools.ant.launch.Locator .fromJarURI(uri), "UTF-8"); inputStream = zf.getInputStream(zf.getEntry(uri.substring(pling + 2))); } else { URLConnection conn = url.openConnection(); } finally { FileUtils.close(inputStream); ZipFile.closeQuietly(zf);
/** * fetches information from the named entry inside the archive. */ protected void fetchEntry() { ZipFile z = null; try { z = new ZipFile(getZipfile(), getEncoding()); setEntry(z.getEntry(getName())); } catch (IOException e) { log(e.getMessage(), Project.MSG_DEBUG); throw new BuildException(e); } finally { ZipFile.closeQuietly(z); } }
/** * Returns <code>true</code> if the file exists and is signed with * the signature specified, or, if <code>name</code> wasn't * specified, if the file contains a signature. * @param zipFile the zipfile to check * @param name the signature to check (may be killed) * @return true if the file is signed. * @throws IOException on error */ public static boolean isSigned(File zipFile, String name) throws IOException { try (ZipFile jarFile = new ZipFile(zipFile)) { if (null == name) { return StreamUtils.enumerationAsStream(jarFile.getEntries()) .anyMatch(e -> e.getName().startsWith(SIG_START) && e.getName().endsWith(SIG_END)); } name = replaceInvalidChars(name); boolean shortSig = jarFile.getEntry(SIG_START + name.toUpperCase() + SIG_END) != null; boolean longSig = false; if (name.length() > SHORT_SIG_LIMIT) { longSig = jarFile.getEntry( SIG_START + name.substring(0, SHORT_SIG_LIMIT).toUpperCase() + SIG_END) != null; } return shortSig || longSig; } }
public static boolean unZipWithoutOverWrite(String unZipFileName, String destFileName) { File unzipFile = new File(unZipFileName); if (StringUtils.isBlank(destFileName) || destFileName.trim().length() == 0) destFileName = unzipFile.getParent(); File destFile; ZipFile zipFile = null; try { zipFile = new ZipFile(unzipFile, "GBK"); for (Enumeration entries = zipFile.getEntries(); entries .hasMoreElements();) { ZipEntry entry = (ZipEntry) entries.nextElement(); destFile = new File(destFileName, entry.getName()); unZipFile(destFile, zipFile, entry, false); // 执行解压 } } catch (Exception e) { log.error("解压ZIP文件异常", e); return false; } finally { try { assert zipFile != null; zipFile.close(); } catch (Exception e) { log.error("异常", e); } } return true; }
getLocation()); try (ZipFile zf = new ZipFile(srcF, encoding, scanForUnicodeExtraFields)) { boolean empty = true; Enumeration<ZipEntry> entries = zf.getEntries(); while (entries.hasMoreElements()) { ZipEntry ze = entries.nextElement(); try { extractFile(fileUtils, srcF, dir, is = zf.getInputStream(ze), //NOSONAR ze.getName(), new Date(ze.getTime()), ze.isDirectory(), mapper);
return getCheckedRef().getInputStream(); final ZipFile z = new ZipFile(getZipfile(), getEncoding()); ZipEntry ze = z.getEntry(getName()); if (ze == null) { z.close(); throw new BuildException("no entry " + getName() + " in " + getArchive()); return new FilterInputStream(z.getInputStream(ze)) { public void close() throws IOException { FileUtils.close(in);
List<String> files) throws IOException { try (org.apache.tools.zip.ZipFile zf = new org.apache.tools.zip.ZipFile(file, "utf-8")) { Set<String> dirSet = new HashSet<>(); StreamUtils.enumerationAsStream(zf.getEntries()).forEach(ze -> { String name = ze.getName(); if (ze.isDirectory()) {
private static Map<ZipEntry, byte[]> readZipAllEntry(ZipFile file) throws Exception { Map<ZipEntry, byte[]> entryMaps = new HashMap<ZipEntry, byte[]>(); Enumeration<? extends ZipEntry> entries = file.getEntries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); int len = -1; byte[] data = new byte[512]; InputStream istream = file.getInputStream(entry); ByteArrayOutputStream bos = new ByteArrayOutputStream(); while ((len = istream.read(data, 0, 512)) != -1) { bos.write(data, 0, len); } bos.close(); istream.close(); byte[] result = bos.toByteArray(); entryMaps.put(entry, result); } return entryMaps; } }
List<ZipEntry> entries = Collections.<ZipEntry>list(zipFile.getEntries()); for(ZipEntry entry : entries) { if (isValidEntry(entry)) { zipFile.close(); } finally { temp.delete();
public static void unzipToDirectory(File file, File destDir) throws IOException { ZipFile zipFile = new ZipFile(file); try { unzipToDirectory(zipFile, destDir); } finally { ZipFile.closeQuietly(zipFile); } }
private byte[] getDataFromZipFileEntry(ZipFile zipFile, ZipEntry entry) throws IOException { InputStream zis = zipFile.getInputStream(entry); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int len; while ((len = zis.read(buf)) > 0) { bos.write(buf, 0, len); } byte[] data = bos.toByteArray(); bos.close(); return data; }
/** * close a zipfile quietly; throw no io fault, do nothing * on a null parameter * @param zipfile file to close, can be null */ public static void closeQuietly(final ZipFile zipfile) { if (zipfile != null) { try { zipfile.close(); } catch (final IOException e) { //ignore } } }
/** * Add a file entry. */ private void addResource(final Resource r, final String name, final String prefix, final ZipOutputStream zOut, final int mode, final ZipFile zf, final File fromArchive) throws IOException { if (zf != null) { final ZipEntry ze = zf.getEntry(r.getName()); if (ze != null) { final boolean oldCompress = doCompress; if (keepCompression) { doCompress = (ze.getMethod() == ZipEntry.DEFLATED); } try (final BufferedInputStream is = new BufferedInputStream(zf.getInputStream(ze))) { zipFile(is, zOut, prefix + name, ze.getTime(), fromArchive, mode, ze.getExtraFields(true)); } finally { doCompress = oldCompress; } } } else { try (final BufferedInputStream is = new BufferedInputStream(r.getInputStream())) { zipFile(is, zOut, prefix + name, r.getLastModified(), fromArchive, mode, r instanceof ZipResource ? ((ZipResource) r).getExtraFields() : null); } } }
try { File sourceFile = new File(sourcePath); zipFile = new ZipFile(sourcePath, "gbk"); if ((!sourceFile.exists()) && (sourceFile.length() <= 0)) { throw new Exception("要解压的文件不存在!"); Enumeration<?> e = zipFile.getEntries(); while (e.hasMoreElements()) { ZipEntry zipEnt = (ZipEntry) e.nextElement(); try { if(null!=zipFile){ zipFile.close();
pathFile.mkdirs(); ZipFile zip = new ZipFile(zipFile); for (Enumeration entries = zip.getEntries(); entries.hasMoreElements();) { ZipEntry entry = (ZipEntry) entries.nextElement(); String zipEntryName = entry.getName(); InputStream in = zip.getInputStream(entry); String outPath = (descDir + zipEntryName).replaceAll("\\*", "/"); outPath = new String(outPath.getBytes("utf-8"), "ISO8859-1");
"Only file provider resources are supported")); try (ZipFile zf = new ZipFile(srcFile, encoding)) { StreamUtils.enumerationAsStream(zf.getEntries()).forEach(entry -> { Resource r = new ZipResource(srcFile, encoding, entry); String name = entry.getName();
private static void unzipToDirectory(ZipFile zipFile, File destDir) throws IOException { byte[] buffer = new byte[4096]; Enumeration entries = zipFile.getEntries(); while (entries.hasMoreElements()) { ZipEntry entry = (ZipEntry) entries.nextElement(); if (entry.isDirectory()) { File dir = new File(destDir, entry.getName()); InstallUtils.createDirectory(dir); } else { File file = new File(destDir, entry.getName()); InstallUtils.createDirectory(file.getParentFile()); OutputStream out = null; InputStream in = null; try { out = new BufferedOutputStream(new FileOutputStream(file)); in = zipFile.getInputStream(entry); Unzip.copy(in, out, buffer); } finally { InstallUtils.close(in); InstallUtils.close(out); } Unzip.setFilePermissions(file, entry); } } }
filename = filepath.substring(index + 1); ZipFile file = new ZipFile(filepath); Map<ZipEntry, byte[]> readZipAllEntry = readZipAllEntry(file); System.out.println("find output dir ...."); System.out.println("package :" + apkName + " success, take time " + (takeTime) / 1000 + "s " + ms + "ms"); file.close(); long totalTakeTime = System.currentTimeMillis() - start; long ms = totalTakeTime % 1000;