import java.util.zip.*;
import java.io.*;
import java.util.*;public class CompressT {
public CompressT() {} public static int dozip(String strfp, String strzip) {
try {
ZipOutputStream zipout = new ZipOutputStream(new CheckedOutputStream(new
FileOutputStream(strzip), new CRC32()));
creatZipEntry(strfp, zipout, "");
zipout.close();
}
catch (Exception e) {
System.out.println(e.toString());
return -1;
}
return 1;
} private static void creatZipEntry(String strfilepath, ZipOutputStream out,
String relativeDir) throws
FileNotFoundException, IOException {
File file = new File(strfilepath);
String[] strlist = file.list();
if (strlist == null || strlist.length <= 0)
return;
for (int i = 0; i < strlist.length; i++) {
String AllfileName = file.getPath().replace('\\', '/') + "/" + strlist[i];
File dir = new File(AllfileName);
if (dir.isDirectory()) {
ZipEntry ze2 = new ZipEntry(relativeDir + strlist[i] + "/");
out.putNextEntry(ze2);
creatZipEntry(AllfileName, out, relativeDir + strlist[i] + "/");
continue;
} //if(dir.isDirectory()) {
ZipEntry ze1 = new ZipEntry(relativeDir + strlist[i]);
out.putNextEntry(ze1);
FileInputStream f = new FileInputStream(AllfileName);
byte[] b = new byte[f.available()];
f.read(b);
out.write(b);
f.close();
out.closeEntry();
} //for(int i=0;i<strlist.length;i++){
} public static void main(String[] args) {
CompressT.dozip("F:/lib", "d:/test.zip");
}
}
import java.io.*;
import java.util.*;public class CompressT {
public CompressT() {} public static int dozip(String strfp, String strzip) {
try {
ZipOutputStream zipout = new ZipOutputStream(new CheckedOutputStream(new
FileOutputStream(strzip), new CRC32()));
creatZipEntry(strfp, zipout, "");
zipout.close();
}
catch (Exception e) {
System.out.println(e.toString());
return -1;
}
return 1;
} private static void creatZipEntry(String strfilepath, ZipOutputStream out,
String relativeDir) throws
FileNotFoundException, IOException {
File file = new File(strfilepath);
String[] strlist = file.list();
if (strlist == null || strlist.length <= 0)
return;
for (int i = 0; i < strlist.length; i++) {
String AllfileName = file.getPath().replace('\\', '/') + "/" + strlist[i];
File dir = new File(AllfileName);
if (dir.isDirectory()) {
ZipEntry ze2 = new ZipEntry(relativeDir + strlist[i] + "/");
out.putNextEntry(ze2);
creatZipEntry(AllfileName, out, relativeDir + strlist[i] + "/");
continue;
} //if(dir.isDirectory()) {
ZipEntry ze1 = new ZipEntry(relativeDir + strlist[i]);
out.putNextEntry(ze1);
FileInputStream f = new FileInputStream(AllfileName);
byte[] b = new byte[f.available()];
f.read(b);
out.write(b);
f.close();
out.closeEntry();
} //for(int i=0;i<strlist.length;i++){
} public static void main(String[] args) {
CompressT.dozip("F:/lib", "d:/test.zip");
}
}
解决方案 »
- 关于java和Access的问题
- 求高手帮帮忙!!!!!
- 请问下面这段代码有什么问题?
- N皇后查询的中文名称?
- js里的document.write总是转到新的页面输出???
- 哪里有java api参考帮助,我要得是windows帮助格式的不是html格式的
- 我刚接触java,想问各位,有没有java语法的什么帮助文件,比方说什么chm...
- 我找到了一个可用的JBuilder7企业版的下载地址,大家帮着推一下啊,呵呵
- 写了一个很简单的关于FileWriter类的测试程序,但是没有达到效果,有空帮我看看吧!
- 一维数组基础题,麻烦帮我看看有什么问题
- toString()的使用问题
- 关于java????
首先感谢你的帮助。
不过还有一个问题。
如果我按照下面的调用,在压缩后的zip文件里,会有一个ast.zip的文件,怎么才能给这个
问题解决?谢谢。
public static void main(String[] args) {
CompressT.dozip("/home/test/tt/aa/", "/home/test/tt/aa/ast.zip");
}
另外,这个问题的分先给你结了。