import java.io.file;
import org.apache.tools.zip.zipoutputstream;
import java.io.fileinputstream;
import java.io.fileoutputstream;
/**
* @author tyrone
*
*/
public class directoryzip {
/**
*@param inputfilename, file or directory waiting for zipping ,outputfilename output file name
*
*/
public void zip(string inputfilename,string outputfilename) throws exception {
zipoutputstream out = new zipoutputstream(new fileoutputstream(outputfilename));
zip(out, new file(inputfilename), "");
system.out.println("zip done");
out.close();
}
private void zip(zipoutputstream out, file f, string base) throws exception {
if (f.isdirectory()) {
file[] fl = f.listfiles();
if (system.getproperty("os.name").startswith("windows")){
out.putnextentry(new org.apache.tools.zip.zipentry(base + "//"));
base = base.length() == 0 ? "" : base + "//";
}
else{
out.putnextentry(new org.apache.tools.zip.zipentry(base + "/"));
base = base.length() == 0 ? "" : base + "/";
}
for (int i = 0; i < fl.length; i++) {
zip(out, fl[i], base + fl[i].getname());
}
}
else {
out.putnextentry(new org.apache.tools.zip.zipentry(base));
fileinputstream in = new fileinputstream(f);
int b;
system.out.println(base);
while ( (b = in.read()) != -1) {
out.write(b);
}
in.close();
}
}
public static void main(string[] args){
directoryzip m_zip=new directoryzip();
try{
m_zip.zip(args[0],"release//2005.zip");
}catch(exception ex){
ex.printstacktrace();
}
}
}
闽公网安备 35060202000074号