怎样实现在服务器端的多个文件压缩打包(包括子目录)?在线等,得到答案立即结贴

saisai 2003-06-29 11:07:54
最好有具体的例子,谢谢!!!
...全文
95 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.*看看

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧