本文整理汇总了Java中java.util.zip.ZipFile.getEntry方法的典型用法代码示例。如果您正苦于以下问题:Java ZipFile.getEntry方法的具体用法?Java ZipFile.getEntry怎么用?Java ZipFile.getEntry使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.util.zip.ZipFile
的用法示例。
在下文中一共展示了ZipFile.getEntry方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: apkPackageName
import java.util.zip.ZipFile; //导入方法依赖的package包/类
@Nullable
public ManifestData apkPackageName(File apkFile) {
if (apkFile == null) {
return null;
}
try {
ZipFile zip = new ZipFile(apkFile);
ZipEntry mft = zip.getEntry(AndroidConstants.ANDROID_MANIFEST_XML);
ApkUtils decompresser = new ApkUtils();
String xml = decompresser.decompressXML(ByteStreams.toByteArray(zip.getInputStream(mft)));
ManifestData manifest = AndroidProjects.parseProjectManifest(new ByteArrayInputStream(xml.getBytes()));
return manifest;
} catch (IOException ex) {
LOG.log(Level.INFO, "cannot get package name from apk file " + apkFile, ex);
return null;
}
}
示例2: Dex
import java.util.zip.ZipFile; //导入方法依赖的package包/类
/**
* Creates a new dex buffer from the dex file {@code file}.
*/
public Dex(File file) throws IOException{
if (FileUtils.hasArchiveSuffix(file.getName())) {
ZipFile zipFile = new ZipFile(file);
ZipEntry entry = zipFile.getEntry(DexFormat.DEX_IN_JAR_NAME);
if (entry != null) {
loadFrom(zipFile.getInputStream(entry));
zipFile.close();
} else {
throw new DexException2("Expected " + DexFormat.DEX_IN_JAR_NAME + " in " + file);
}
} else if (file.getName().endsWith(".dex")) {
loadFrom(new FileInputStream(file));
} else {
throw new DexException2("unknown output extension: " + file);
}
}
示例3: Dex
import java.util.zip.ZipFile; //导入方法依赖的package包/类
/**
* Creates a new dex buffer from the dex file {@code file}.
*/
public Dex(File file) throws IOException {
if (FileUtils.hasArchiveSuffix(file.getName())) {
ZipFile zipFile = new ZipFile(file);
ZipEntry entry = zipFile.getEntry(DexFormat.DEX_IN_JAR_NAME);
if (entry != null) {
loadFrom(zipFile.getInputStream(entry));
zipFile.close();
} else {
throw new DexException("Expected " + DexFormat.DEX_IN_JAR_NAME + " in " + file);
}
} else if (file.getName().endsWith(".dex")) {
loadFrom(new FileInputStream(file));
} else {
throw new DexException("unknown output extension: " + file);
}
}
示例4: getInputStreamByName
import java.util.zip.ZipFile; //导入方法依赖的package包/类
protected InputStream getInputStreamByName(String name) throws IOException
{
ZipFile zipfile = this.getResourcePackZipFile();
ZipEntry zipentry = zipfile.getEntry(name);
if (zipentry == null)
{
throw new ResourcePackFileNotFoundException(this.resourcePackFile, name);
}
else
{
return zipfile.getInputStream(zipentry);
}
}
示例5: findResource
import java.util.zip.ZipFile; //导入方法依赖的package包/类
/**
* Finds a resource. This method is called by {@code getResource()} after
* the parent ClassLoader has failed to find a loaded resource of the same
* name.
*
* @param name The name of the resource to find
* @return the location of the resource as a URL, or {@code null} if the
* resource is not found.
*/
@Override
protected URL findResource(String name) {
ensureInit();
int length = mFiles.length;
for (int i = 0; i < length; i++) {
File pathFile = mFiles[i];
ZipFile zip = mZips[i];
if (zip.getEntry(name) != null) {
if (VERBOSE_DEBUG)
System.out.println(" found " + name + " in " + pathFile);
try {
// File.toURL() is compliant with RFC 1738 in always
// creating absolute path names. If we construct the
// URL by concatenating strings, we might end up with
// illegal URLs for relative names.
return new URL("jar:" + pathFile.toURL() + "!/" + name);
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
}
}
if (VERBOSE_DEBUG)
System.out.println(" resource " + name + " not found");
return null;
}
示例6: getBuildDateAsString
import java.util.zip.ZipFile; //导入方法依赖的package包/类
/**
* INTERNAL method that returns the build date of the current APK as a string, or null if unable to determine it.
*
* @param context A valid context. Must not be null.
* @param dateFormat DateFormat to use to convert from Date to String
* @return The formatted date, or "Unknown" if unable to determine it.
*/
private static String getBuildDateAsString(Context context, DateFormat dateFormat) {
String buildDate;
try {
ApplicationInfo ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), 0);
ZipFile zf = new ZipFile(ai.sourceDir);
ZipEntry ze = zf.getEntry("classes.dex");
long time = ze.getTime();
buildDate = dateFormat.format(new Date(time));
zf.close();
} catch (Exception e) {
buildDate = "Unknown";
}
return buildDate;
}
示例7: getSize
import java.util.zip.ZipFile; //导入方法依赖的package包/类
@Override
protected long getSize () throws IOException {
ZipFile zf = new ZipFile (archiveFile);
try {
ZipEntry ze = zf.getEntry(this.resName);
return ze == null ? 0L : ze.getSize();
} finally {
zf.close();
}
}
示例8: getInputStream
import java.util.zip.ZipFile; //导入方法依赖的package包/类
@Override
public InputStream getInputStream() throws IOException {
final ZipFile z = new ZipFile(getZipfile(), ZipFile.OPEN_READ);
ZipEntry ze = z.getEntry(super.getName());
if (ze == null) {
z.close();
throw new BuildException("no entry " + getName() + " in "
+ getArchive());
}
return z.getInputStream(ze);
}
示例9: contains
import java.util.zip.ZipFile; //导入方法依赖的package包/类
static boolean contains(File jarFile, String entryName)
throws IOException {
ZipFile zf = new ZipFile(jarFile);
if ( zf != null ) {
boolean result = zf.getEntry(entryName) != null;
zf.close();
return result;
}
return false;
}
示例10: performExtractions
import java.util.zip.ZipFile; //导入方法依赖的package包/类
private static List<File> performExtractions(File sourceApk, File dexDir) throws IOException {
String extractedFilePrefix = sourceApk.getName() + EXTRACTED_NAME_EXT;
prepareDexDir(dexDir, extractedFilePrefix);
List<File> files = new ArrayList();
ZipFile apk = new ZipFile(sourceApk);
int secondaryNumber = 2;
try {
ZipEntry dexFile = apk.getEntry(DEX_PREFIX + 2 + ".dex");
while (dexFile != null) {
File extractedFile = new File(dexDir, extractedFilePrefix + secondaryNumber + EXTRACTED_SUFFIX);
files.add(extractedFile);
Log.i(TAG, "Extraction is needed for file " + extractedFile);
int numAttempts = 0;
boolean isExtractionSuccessful = false;
while (numAttempts < 3 && !isExtractionSuccessful) {
numAttempts++;
extract(apk, dexFile, extractedFile, extractedFilePrefix);
isExtractionSuccessful = verifyZipFile(extractedFile);
Log.i(TAG, "Extraction " + (isExtractionSuccessful ? "success" : "failed") + " - length " + extractedFile.getAbsolutePath() + ": " + extractedFile.length());
if (!isExtractionSuccessful) {
extractedFile.delete();
if (extractedFile.exists()) {
Log.w(TAG, "Failed to delete corrupted secondary dex '" + extractedFile.getPath() + "'");
}
}
}
if (isExtractionSuccessful) {
secondaryNumber++;
dexFile = apk.getEntry(DEX_PREFIX + secondaryNumber + ".dex");
} else {
throw new IOException("Could not create zip file " + extractedFile.getAbsolutePath() + " for secondary dex (" + secondaryNumber + SocializeConstants.OP_CLOSE_PAREN);
}
}
return files;
} finally {
try {
apk.close();
} catch (IOException e) {
Log.w(TAG, "Failed to close resource", e);
}
}
}
示例11: ArchiveFileHandle
import java.util.zip.ZipFile; //导入方法依赖的package包/类
public ArchiveFileHandle(ZipFile archive, String fileName) {
super(fileName.replace('\\', '/'), FileType.Classpath);
this.archive = archive;
this.archiveEntry = archive.getEntry(fileName.replace('\\', '/'));
}
示例12: getZipEntry
import java.util.zip.ZipFile; //导入方法依赖的package包/类
ZipEntry getZipEntry(ZipFile zip) {
return zip.getEntry(path);
}
示例13: unpack
import java.util.zip.ZipFile; //导入方法依赖的package包/类
public static void unpack(File zipfile) {
try {
ZipFile zip = new ZipFile(zipfile);
ZipEntry info = zip.getEntry("__PROJECT_INFO__");
BufferedReader in = new BufferedReader(new InputStreamReader(zip.getInputStream(info), "UTF-8"));
String pId = in.readLine();
String pTitle = in.readLine();
String pStartD = in.readLine();
String pEndD = in.readLine();
in.close();
if (ProjectManager.getProject(pId) != null) {
int n =
JOptionPane.showConfirmDialog(
App.getFrame(),
Local.getString("This project is already exists and will be replaced.\nContinue?"),
Local.getString("Project is already exists"),
JOptionPane.YES_NO_OPTION);
if (n != JOptionPane.YES_OPTION) {
zip.close();
return;
}
ProjectManager.removeProject(pId);
}
Project prj = ProjectManager.createProject(pId, pTitle, new CalendarDate(pStartD), null);
if (pEndD != null)
prj.setEndDate(new CalendarDate(pEndD));
//File prDir = new File(JN_DOCPATH + prj.getID());
Enumeration files;
for (files = zip.entries(); files.hasMoreElements();){
ZipEntry ze = (ZipEntry)files.nextElement();
if ( ze.isDirectory() )
{
File theDirectory = new File (JN_DOCPATH + prj.getID()+ "/" + ze.getName() );
// create this directory (including any necessary parent directories)
theDirectory.mkdirs();
theDirectory = null;
}
if ((!ze.getName().equals("__PROJECT_INFO__")) && (!ze.isDirectory())) {
FileOutputStream out = new FileOutputStream(JN_DOCPATH + prj.getID() +"/"+ ze.getName());
InputStream inp = zip.getInputStream(ze);
byte[] buffer = new byte[1024];
int len;
while((len = inp.read(buffer)) >= 0)
out.write(buffer, 0, len);
inp.close();
out.close();
}
}
zip.close();
CurrentStorage.get().storeProjectManager();
}
catch (Exception ex) {
new ExceptionDialog(ex, "Failed to read from "+zipfile, "Make sure that this file is a Memoranda project archive.");
}
}
示例14: isMultiDexApk
import java.util.zip.ZipFile; //导入方法依赖的package包/类
public static boolean isMultiDexApk(File apkFile) throws ZipException, IOException {
ZipFile f = new ZipFile(apkFile);
boolean hasClasses2Dex = f.getEntry("classes2.dex") != null;
f.close();
return hasClasses2Dex;
}
示例15: toObsidianFile
import java.util.zip.ZipFile; //导入方法依赖的package包/类
@Override
public ObsidianFile toObsidianFile(File file)
{
String error = "Failed to import from Qubble file: " + file.getName();
try
{
String entityName = file.getName().split("\\.")[0];
//Model
QubbleModel qubbleModel = load(file);
String duplicatePartName;
if((duplicatePartName = containsDuplicateParts(qubbleModel)) != null) {
error += ". The model contains the duplicate part " + duplicatePartName;
throw new RuntimeException(error);
}
ObjModel objModel = qblConverter.qbl2obj(qubbleModel, 0.0625F);
//Texture
ZipFile zipFile = new ZipFile(file);
ZipEntry textureEntry = zipFile.getEntry("base.png");
byte[] textureBytes;
if (textureEntry != null)
{
textureBytes = IOUtils.toByteArray(zipFile.getInputStream(textureEntry));
}
else
{
textureBytes = IOUtils.toByteArray(new FileInputStream(defaultTexture));
}
zipFile.close();
byte[] modelBytes = createModelBytes(objModel.toStringList());
return new ObsidianFile(entityName, modelBytes, textureBytes);
}
catch (Exception e1)
{
final JOptionPane pane = new JOptionPane(error);
final JDialog d = pane.createDialog(null, "Import Error");
d.setAlwaysOnTop(true);
d.setVisible(true);
e1.printStackTrace();
return null;
}
}