A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


    在一本书中看过一个压缩文件的代码,但是这个例子只针对文件夹中不存在子文件夹。如果文件夹存在子文件夹,或者更复杂一些,文件夹结构未知。该怎么处理?自己试了试,发现解决不了。问题出现在这里面涉及函数的递归调用,另外zipEntry里,文件夹怎么处理的问题。在这里请教各位,万分感谢!

         贴出自己的代码,请老师指导!
import java.io.*;
import java.util.zip.*;
public class zipFolder {  


public static void zip(File f) throws IOException{   

  File zf=new File("d:"+File.separator+"ziptest.zip");  
  InputStream in=new FileInputStream(f);
  ZipOutputStream zipout=new ZipOutputStream(new FileOutputStream(zf));
  zipout.putNextEntry(new ZipEntry(f.getPath()));
  int temp=0;
  while((temp=in.read())!=-1){
   zipout.write(temp);
  }
  in.close();
  zipout.close();  
}

public static void zipDir(File f) throws IOException{  //函数递归调用
  if(f!=null){
   if(f.isDirectory()){
    File list[]=f.listFiles();
    if(list!=null){
     for(int i=0;i<list.length;i++){
      zipDir(list);
     }
    }
   }
   else{
    zip(f);
   }
  }
}
  
public static void main(String args[]) throws IOException{
  File f=new File("d:"+File.separator+"ziptest");
  zipDir(f);
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马