Java将文件夹保留目录打包为ZIP压缩包并下载的方法-创新互联

这篇文章主要介绍Java将文件夹保留目录打包为 ZIP压缩包并下载的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

网站设计制作、成都网站建设介绍好的网站是理念、设计和技术的结合。创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

上周做了一个需求,要求将数据库保存的 html 界面取出后将服务器下的css和js文件一起打包压缩为ZIP文件,返回给前台;在数据库中保存的是html标签,查出后,我把这些内容写入css和js等其他文件所在目录的一个文件内,然后将这整个文件夹压缩打包下载,解决过程中遇到了下载出来后并没有保存层级目录,在查了好久方法后完成了如下版本,已经可以正常下载并保留层级目录。

//ZIP文件包压缩下载
 @Override
 public void downloadZip(String id,HttpServletResponse response) {
 		String zipPath = "你的路径";
 File file = new File(zipPath,"index.html");//创建指定目录和文件名称的文件对象
 BufferedWriter bw = null;//创建缓冲流
 try {
 	//校验文件目录是否存在,文件是否存在
  chenkFile(file,zipPath);
  //这一步是我将指定内容从数据库写入文件
  ModuleInfo moduleInfo = moduleDao.getByModId(id);
  
  bw = new BufferedWriter(new FileWriter(file));
  //把内容写入临时文件中
  bw.write(moduleInfo.getContent());
  //此处不能删除,要关闭一次 不关闭无法写入内容 导致压缩包内文件无内容
  bw.flush();
  bw.close();
  //将目标文件压缩为ZIP并下载
  ZipUtil.zip(zipPath,response);
  //删除文件(防止下一次压缩时有重复文件名)
  file.delete();
 } catch (Exception e) {
  log.error("html压缩"+e.getMessage(),e);
 }finally {
 	//这是我写的IO流关闭工具类 如需要可以看我关于IO流关闭的文章
  IOCloseUtils.ioClose(bw);
 }
 }

 //判断文件目录和文件是否存在 如否则新建
 public void chenkFile(File file,String path){
 try {
  if (file.exists()){//如果目录存在
  if (!file.isDirectory()){//如果文件不存在
   file.createNewFile();//创建文件
  }
  }else {//如果目录不存在
  File file1 = new File(path);//创建指定目录文件对象
  file1.mkdirs();//创建目录
  file.createNewFile();//创建文件
  }
 } catch (IOException e) {
  log.error(e.getMessage(),e);
 }
 }

分享名称:Java将文件夹保留目录打包为ZIP压缩包并下载的方法-创新互联
文章地址:http://scyanting.com/article/gcdip.html