package net.szh.zip;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.CRC32;
import java.util.zip.CheckedOutputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
public class ZipCompressor {
static final int BUFFER = 8192;
public ZipCompressor
(String pathName
) {
zipFile
= new File(pathName
);
}
public void compress
(String srcPathName
) {
if (!file.exists())
try {
compress(file, out, basedir);
out.close();
}
}
/* 判断是目录还是文件 */
if (file.isDirectory()) {
System.
out.
println("压缩:" + basedir
+ file.
getName());
this.compressDirectory(file, out, basedir);
} else {
System.
out.
println("压缩:" + basedir
+ file.
getName());
this.compressFile(file, out, basedir);
}
}
/** 压缩一个目录 */
if (!dir.exists())
return;
File[] files
= dir.
listFiles();
for (int i = 0; i < files.length; i++) {
/* 递归 */
compress(files[i], out, basedir + dir.getName() + "/");
}
}
/** 压缩一个文件 */
if (!file.exists()) {
return;
}
try {
out.putNextEntry(entry);
int count;
byte data[] = new byte[BUFFER];
while ((count = bis.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
bis.close();
}
}
}
package net.szh.zip;
import java.io.File;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;
public class ZipCompressorByAnt {
public ZipCompressorByAnt
(String pathName
) {
zipFile
= new File(pathName
);
}
public void compress
(String srcPathName
) {
if (!srcdir.exists())
Project prj = new Project();
Zip zip = new Zip();
zip.setProject(prj);
zip.setDestFile(zipFile);
FileSet fileSet = new FileSet();
fileSet.setProject(prj);
fileSet.setDir(srcdir);
//fileSet.setIncludes("**/*.java"); 包括哪些文件或文件夹 eg:zip.setIncludes("*.java");
//fileSet.setExcludes(...); 排除哪些文件或文件夹
zip.addFileset(fileSet);
zip.execute();
}
}