importjava.io.File;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.util.Enumeration;importorg.apache.tools.zip.ZipEntry;importorg.apache.tools.zip.ZipFile;/***@authorourife
*@version创建时间:Jun 29, 2007 11:51:52 AM
* 解压缩文件*/publicclassUnZip {publicstaticvoidmain(String argv[]) {try{
String outputDirectory="D:/testzip/";
ZipFile zipFile=newZipFile("D:/testzip/test.zip");
Enumeration e=zipFile.getEntries();
ZipEntry zipEntry=null;
createDirectory(outputDirectory,"");while(e.hasMoreElements()) {
zipEntry=(ZipEntry) e.nextElement();
System.out.println("unziping"+zipEntry.getName());if(zipEntry.isDirectory()) {
String name=zipEntry.getName();
name=name.substring(0, name.length()-1);
File f=newFile(outputDirectory+File.separator+name);
f.mkdir();
}else{
String fileName=zipEntry.getName();
fileName=fileName.replace('/','/');if(fileName.indexOf("/")!=-1) {createDirectory(outputDirectory, fileName.substring(0,fileName.lastIndexOf("/")));
}File f=newFile(outputDirectory+zipEntry.getName());
f.createNewFile();
InputStream in=zipFile.getInputStream(zipEntry);
FileOutputStream out=newFileOutputStream(f);byte[] by=newbyte[1024];intc;while((c=in.read(by))!=-1) {
out.write(by,0, c);
}
out.close();
in.close();
}
}
System.out.println("done!");
}catch(Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}privatestaticvoidcreateDirectory(String directory, String subDirectory) {
String dir[];
File fl=newFile(directory);try{if(subDirectory==""&&fl.exists()!=true)
fl.mkdir();elseif(subDirectory!="") {
dir=subDirectory.replace('/','/').split("/");for(inti=0; i
File subFile=newFile(directory+File.separator+dir[i]);if(subFile.exists()==false)
subFile.mkdir();
directory+=File.separator+dir[i];
}
}
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}