首页上一页 1 下一页尾页 1 条记录 1/1页
java 从入门到精通
发表在Java图书答疑
2009-03-20
是否精华
是
否
版块置顶:
是
否
import java.util.zip.*;
import java.io.*;
public class Myzip {
private void zip(String zipFileName,File inputfile) throws Exception{
File file=new File(zipFileName);
FileOutputStream fs=new FileOutputStream(file);
ZipOutputStream out=new ZipOutputStream(fs);
zip(out,inputfile,"#");
System.out.println("压缩中。。。");
out.close();
}
private void zip(ZipOutputStream out,File file,String base)throws Exception{
if(file.isDirectory()){ //判断目录是否是一个目录
File[] fl=file.listFiles(); //file 的绝对路径
out.putNextEntry(new ZipEntry(base+"/")); //写入对象的进入点
base=base.length()==0?base:base+"/"; //判断参数组是否为空
for(int i=0;i<base.length();i++){ //遍历数组中的文件
zip(out,fl[i],base+fl[i]);
}
}else{
out.putNextEntry(new ZipEntry(base)); //创建进入点
FileInputStream in=new FileInputStream(file);
int b;
System.out.println(base);
while((b=in.read())!=-1){
out.write(b);
}
in.close();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Myzip myzip=new Myzip();
File file=new File("D:/myword");
try{
myzip.zip("D:/zipmyword.zip",file);
System.out.println("压缩结束");
}catch(Exception e1){
e1.printStackTrace();
}
}
}
我在D:/myword文件夹下有四个文件而只压缩了两个文件是怎么回事?
import java.io.*;
public class Myzip {
private void zip(String zipFileName,File inputfile) throws Exception{
File file=new File(zipFileName);
FileOutputStream fs=new FileOutputStream(file);
ZipOutputStream out=new ZipOutputStream(fs);
zip(out,inputfile,"#");
System.out.println("压缩中。。。");
out.close();
}
private void zip(ZipOutputStream out,File file,String base)throws Exception{
if(file.isDirectory()){ //判断目录是否是一个目录
File[] fl=file.listFiles(); //file 的绝对路径
out.putNextEntry(new ZipEntry(base+"/")); //写入对象的进入点
base=base.length()==0?base:base+"/"; //判断参数组是否为空
for(int i=0;i<base.length();i++){ //遍历数组中的文件
zip(out,fl[i],base+fl[i]);
}
}else{
out.putNextEntry(new ZipEntry(base)); //创建进入点
FileInputStream in=new FileInputStream(file);
int b;
System.out.println(base);
while((b=in.read())!=-1){
out.write(b);
}
in.close();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Myzip myzip=new Myzip();
File file=new File("D:/myword");
try{
myzip.zip("D:/zipmyword.zip",file);
System.out.println("压缩结束");
}catch(Exception e1){
e1.printStackTrace();
}
}
}
我在D:/myword文件夹下有四个文件而只压缩了两个文件是怎么回事?