本文整理了Java中org.apache.tools.zip.ZipFile
类的一些代码示例,展示了ZipFile
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipFile
类的具体详情如下:
包路径:org.apache.tools.zip.ZipFile
类名称:ZipFile
[英]Replacement for java.util.ZipFile
.
This class adds support for file name encodings other than UTF-8 (which is required to work on ZIP files created by native zip tools and is able to skip a preamble like the one found in self extracting archives. Furthermore it returns instances of org.apache.tools.zip.ZipEntry
instead of java.util.zip.ZipEntry
.
It doesn't extend java.util.zip.ZipFile
as it would have to reimplement all methods anyway. Like java.util.ZipFile
, it uses RandomAccessFile under the covers and supports compressed and uncompressed entries. As of Apache Ant 1.9.0 it also transparently supports Zip64 extensions and thus individual entries and archives larger than 4 GB or with more than 65536 entries.
The method signatures mimic the ones of java.util.zip.ZipFile
, with a couple of exceptions:
org.apache.tools.zip.ZipEntry
instances.java.util.ZipFile
。org.apache.tools.zip.ZipEntry
而不是java.util.zip.ZipEntry
的实例。java.util.zip.ZipFile
,因为它无论如何都必须重新实现所有方法。与java.util.ZipFile
类似,它在封面下使用RandomAccessFile,并支持压缩和未压缩的条目。从ApacheAnt 1.9.0开始,它还透明地支持Zip64扩展,因此单个条目和归档文件的容量大于4GB或超过65536个条目。java.util.zip.ZipFile
的签名,但有几个例外:org.apache.tools.zip.ZipEntry
个实例。代码示例来源:origin: jenkinsci/jenkins
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();
代码示例来源:origin: org.apache.ant/ant
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);
代码示例来源:origin: org.apache.ant/ant
/**
* 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);
}
}
代码示例来源:origin: org.apache.ant/ant
/**
* 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;
}
}
代码示例来源:origin: com.github.javahaohao/utils
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;
}
代码示例来源:origin: org.apache.ant/ant
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);
代码示例来源:origin: org.apache.ant/ant
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);
代码示例来源:origin: org.apache.ant/ant
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()) {
代码示例来源:origin: gradle.plugin.com.bettycc.umengauto/core
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;
}
}
代码示例来源:origin: org.apache.ant/ant
base = fileset.getDir(getProject());
} else if (zfs instanceof ZipFileSet) {
zf = new ZipFile(zfs.getSrc(getProject()), encoding);
zf.close();
代码示例来源:origin: org.kantega.openaksess/openaksess-core
List<ZipEntry> entries = Collections.<ZipEntry>list(zipFile.getEntries());
for(ZipEntry entry : entries) {
if (isValidEntry(entry)) {
zipFile.close();
} finally {
temp.delete();
代码示例来源:origin: net.wasdev.wlp.ant/wlp-anttasks
public static void unzipToDirectory(File file, File destDir) throws IOException {
ZipFile zipFile = new ZipFile(file);
try {
unzipToDirectory(zipFile, destDir);
} finally {
ZipFile.closeQuietly(zipFile);
}
}
代码示例来源:origin: org.kantega.openaksess/openaksess-core
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;
}
代码示例来源:origin: org.apache.ant/ant
/**
* 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
}
}
}
代码示例来源:origin: org.apache.ant/ant
/**
* 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);
}
}
}
代码示例来源:origin: qq53182347/liugh-parent
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();
代码示例来源:origin: net.mingsoft/ms-util
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");
代码示例来源:origin: org.apache.ant/ant
"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();
代码示例来源:origin: net.wasdev.wlp.ant/wlp-anttasks
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);
}
}
}
代码示例来源:origin: gradle.plugin.com.bettycc.umengauto/core
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;
内容来源于网络,如有侵权,请联系作者删除!