/** 缓冲 */
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(); // 释放资源
}
}
java中将一个文件夹下所有的文件压缩成一个文件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Java对Zip文件的支持不是很强大,有一些需要自己实现的代码,我在网上找了很多代码,都不能用于生产,要不就是流没...
- 移动端开发过程中,前端在请求后台的数据时,为了用户体验更加完善,通常需要分页请求,在点击展开时以往我常常喜欢...