前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java中将一个文件夹下所有的文件压缩成一个文件

java中将一个文件夹下所有的文件压缩成一个文件

作者头像
試毅-思伟
发布2018-09-06 11:01:09
2.1K0
发布2018-09-06 11:01:09
举报
文章被收录于专栏:Java开发
代码语言:javascript
复制
/** 缓冲 */
static final byte[] buffer = new byte[2048];  


// 来源  
File inputDir = new File(request.getServletContext()  
    .getRealPath(Constant.getUploadPath()));  
if (null != inputDir.listFiles()) {  
    // 压缩  
    zip(inputDir.listFiles(), "", zip);  
}  


/** 
* 压缩ZIP 
*  
* @param files 
*            多个文件 
* @param baseFolder 
*            压缩到ZIP的父级目录(目录后面跟上File.separator) 
* @param zos 
*            ZipOutputStream 
* @throws Exception 
*/  
private static void zip(File[] files, String baseFolder, ZipOutputStream zos)  
        throws Exception {  
    // 输入  
    FileInputStream fis = null;  
    // 条目  
    ZipEntry entry = null;  
    // 数目  
    int count = 0;  
    for (File file : files) {  
        if (file.isDirectory()) {  
        // 递归  
        zip(file.listFiles(),  baseFolder + file.getName() + File.separator, zos);  
        continue;  
        }  
        entry = new ZipEntry(baseFolder + file.getName());  
        // 加入  
        zos.putNextEntry(entry);  
        fis = new FileInputStream(file);  
        // 读取  
        while ((count = fis.read(buffer, 0, buffer.length)) != -1) {  
        // 写入  
        zos.write(buffer, 0, count);  
        }  
        zos.closeEntry(); // 释放资源  
    }  
}  


记得用完zip要close掉
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.12.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档