如何将一个文件夹的文件分类压缩到一个 zip 包? 你只需要按照你需要的Entry放就可以了,zip会自动创建目录的!请参考这个代码 http://www.java2000.net/viewthread.jsp?tid=94 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给lz贴段封装好的压缩文件代码:/** * zip压缩功能. * 将sourceDir目录下的所有文件连同子目录压缩到targetFileName. * @throws Exception */ public static void createZip(String sourceDir, String targetFileName) throws Exception{ //压缩baseDir下所有文件,包括子目录 String baseDir=sourceDir; List fileList=getSubFiles(new File(baseDir)); //压缩文件名 ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(targetFileName)); ZipEntry ze=null; byte[] buf=new byte[1024]; int readLen=0; for (int i = 0; i <fileList.size(); i++) { File f=(File)fileList.get(i); //System.out.print("Adding: "+f.getPath()+f.getName()); //创建一个ZipEntry,并设置Name和其它的一些属性 ze=new ZipEntry(getAbsFileName(baseDir, f)); ze.setSize(f.length()); ze.setTime(f.lastModified()); //将ZipEntry加到zos中,再写入实际的文件内容 zos.putNextEntry(ze); InputStream is=new BufferedInputStream(new FileInputStream(f)); while ((readLen=is.read(buf, 0, 1024))!=-1) { zos.write(buf, 0, readLen); } is.close(); //System.out.println(" done..."); } zos.close(); } sso-单点登录 关于学习struts2的一些困惑 No WebApplicationContext found: no ContextLoaderListener registered? struts2和spring结合问题,很着急啊。。。 SSH异常 为了找工作,想学点数据库方面的知识,请各位大侠给点建议! Hibernate的问题 国际化 怎么生成文档的特征码(一篇文档唯一的标示串)? 大家帮帮忙,一个关于jdbc与数据库表结构的问题? 关于soap的安全性的问题 关于tomcat源代码的问题
* zip压缩功能.
* 将sourceDir目录下的所有文件连同子目录压缩到targetFileName.
* @throws Exception
*/
public static void createZip(String sourceDir, String targetFileName) throws Exception{
//压缩baseDir下所有文件,包括子目录
String baseDir=sourceDir;
List fileList=getSubFiles(new File(baseDir));
//压缩文件名
ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(targetFileName));
ZipEntry ze=null;
byte[] buf=new byte[1024];
int readLen=0;
for (int i = 0; i <fileList.size(); i++) {
File f=(File)fileList.get(i);
//System.out.print("Adding: "+f.getPath()+f.getName());
//创建一个ZipEntry,并设置Name和其它的一些属性
ze=new ZipEntry(getAbsFileName(baseDir, f));
ze.setSize(f.length());
ze.setTime(f.lastModified());
//将ZipEntry加到zos中,再写入实际的文件内容
zos.putNextEntry(ze);
InputStream is=new BufferedInputStream(new FileInputStream(f));
while ((readLen=is.read(buf, 0, 1024))!=-1) {
zos.write(buf, 0, readLen);
}
is.close();
//System.out.println(" done...");
}
zos.close();
}