package com.e2u.misc.zip;
import java.io.File;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class TestReadZipFile {
public static void readZip(String zipFileName)
{
try {
ZipFile zipFile = new ZipFile(zipFileName);
for(Enumeration e = zipFile.entries(); e.hasMoreElements(); )
{
ZipEntry entry = (ZipEntry)e.nextElement();
// System.out.println(entry.getName() + " | " + entry.getMethod() + " | " + entry.getSize() + " | " + entry.getCompressedSize());
System.out.println(entry.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void scanZipDir(String dirName, String fileNameInZip)
{
try {
File dir = new File(dirName);
if(!dir.isDirectory())
{
System.err.println(dirName + " is not Directory.");
return;
}
File[] files = dir.listFiles();
if(files == null || files.length == 0)
{
System.err.println("There's no files in the directory " + dirName);
return;
}
String fileName;
for(int i = 0; i < files.length; i++)
{
if(files[i].isFile())
{
fileName = files[i].getName();
if(!fileName.endsWith(".jar") && !fileName.endsWith(".zip"))
{
continue;
}
findFileInZip(files[i], fileNameInZip);
}
}
for(int i = 0; i < files.length; i++)
{
if(files[i].isDirectory())
{
scanZipDir(files[i].getCanonicalPath(), fileNameInZip);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static boolean findFileInZip(File file, String fileNameInZip)
{
try {
ZipFile zipFile = new ZipFile(file);
for(Enumeration e = zipFile.entries(); e.hasMoreElements(); )
{
ZipEntry entry = (ZipEntry)e.nextElement();
if(entry.getName().indexOf(fileNameInZip) != -1)
{
System.out.println("Found \"" + fileNameInZip + "\" in " + file.getCanonicalPath() + ", entry = " + entry.getName());
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* @param args
*/
public static void main(String[] args) {
scanZipDir("C:/Temp/test", "com/e2u/mis");
}
}