社区
Java SE
帖子详情
怎样实现在服务器端的多个文件压缩打包(包括子目录)?在线等,得到答案立即结贴
saisai
2003-06-29 11:07:54
最好有具体的例子,谢谢!!!
...全文
135
2
打赏
收藏
怎样实现在服务器端的多个文件压缩打包(包括子目录)?在线等,得到答案立即结贴
最好有具体的例子,谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
saisai
2003-06-30
打赏
举报
回复
程序如下:(一部分是copy的)
package zipfile;
import java.util.zip.*;
import java.io.*;
public class makeZIP
{
static final int BUFFER=2048*5;
static BufferedInputStream orign=null;
static int count=0;
public static void main(String[] args)
{
try{
String path="j:\\ws1";
compress(path);
}catch (Exception e){
e.printStackTrace();
}
}
public static void compress(String root)throws Exception
{
try{ //建立目标输出流
FileOutputStream dest=new FileOutputStream("j:\\zip\\ws.zip");
ZipOutputStream out=new ZipOutputStream( new BufferedOutputStream(dest) );
//实例化新文件
File f=new File(root);
String[] files=f.list();
String d=null;
// byte[] data=new byte[BUFFER];
byte[] data=new byte[BUFFER];
System.out.println("root is"+root);
for(int i=0;i<files.length;i++)
{
File f1=new File(root,files[i]);
//如果是文件,进行压缩
if(f1.isFile() )
{
//加文件路径,否则找不到文件!!
d=root + "\\" +files[i];
System.out.println(d);
//设置文件输入流
FileInputStream in=new FileInputStream(d);
orign=new BufferedInputStream(in,BUFFER);
//为读出的数据创建一个zip条目表
ZipEntry entry=new ZipEntry(d);
//将zip条目列表写入输出流
out.putNextEntry(entry);
// while( (count=orign.read(data,0,BUFFER))!=-1)
// {
// System.out.println("要处理的文件集:"+d);
// out.write(data,0,BUFFER);
// }
while ( (count = orign.read())!=-1)
{
out.write(count);
}
count=0;
orign.close();
}
//如果是子目录进行递归调用!
else{
String sub=f1.getPath();
System.out.println("sub is:"+sub);
compress(sub);
}
}
out.close();
}catch(Exception e){throw e;}
}
}
现在测试存在几个问题:中文文件名解压时显示不对,包含子目录的文件上传有错误,请指教
www203
2003-06-29
打赏
举报
回复
用java.util.zip.*看看
关于 Git 的 20 个面试题
转载自:https://segmentfault.com/a/1190000019315509 Q1. Git和SVN有什么区别? Git SVN 1. Git是一个分布式的版本控制工具 1. SVN 是集中版本控制工具 2.它属于第3代版本控制工具 2.它属于第2代版本控制工具 3.客户端可以在其本地系统上克隆整个存储库 3.版本历史记录存储在服务器...
FreeBSD 10.2到10.3
在线
升级实战:freebsd-update详解
FreeBSD系统升级是保障安全与稳定的核心运维操作,其本质是用户空间与内核ABI的协同演进。freebsd-update作为官方推荐的二进制增量更新工具,基于GPG签名验证、差分补丁和原子化安装机制,兼顾安全性、可回滚性与配置零干扰。相比耗时长、资源压力大且不可逆的buildworld源码编译方案,freebsd-update更适合生产环境——尤其在应对OpenSSL等关键组件高危漏洞(如CVE-2016-2107)时,能
实现
分钟级热补丁交付。典型应用场景
包括
邮件网关、ZFS存储节点及长期运行的10.x维
阿里内部资料,10W字总结JAVA面试题-Git篇
目录 1、Git和SVN有什么区别? 2、什么是Git? 3、在 Git中提交的命令是什么? 4、什么是 Git 中的“裸存储库”? 5、Git 是用什么语言编写的? 6、在Git中,你如何还原已经 push并公开的提交? 7、git pull 和 git fetch 有什么区别? 8、git中的“staging area”或“index”是什么? 9、什么是 git stash? 10、什么是git stash drop? 11.、如何找到特定提交中已更改的
文件
列表? ...
Ubuntu 20.04 下 Seafile 企业级
文件
同步服务部署指南
文件
同步服务是现代团队协作与数据自主管理的基础能力,其核心在于安全可控的传输机制、高并发元数据处理及端到端加密支持。Seafile 作为专注企业级场景的开源方案,依托 MariaDB 的事务一致性保障多用户协同可靠性,结合 Apache 的成熟反向代理与 WebSocket 支持
实现
OnlyOffice 深度集成,并通过严格 SSL 链路(含 OCSP Stapling 和完整证书链)确保跨平台客户端连接稳定。在 Ubuntu 20.04 这一长期支持系统上,其内核、Python 3.8 与 system
全网最强Nginx教程 | 万字长文爆肝Nginx(二)
本文介绍了Nginx服务器的基础配置实例,通过一个完整的示例演示了如何配置多端口、多路径访问、自定义404页面、日志分割等功能。详细讲解了Nginx全局块、events块和http块的配置方法,并提供了server1.conf和server2.conf的具体配置内容。文章还解决了Nginx操作不便的问题,
包括
将Nginx配置为系统服务(使用systemctl管理)和将Nginx命令添加到系统环境变量中。最后简要提及了Nginx静态资源部署的概念,区分了静态资源和动态资源的区别。这些配置技巧可以帮助管理员更高
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章