/**
* Filename: Rt.java
* Description:
* Copyright: Copyright (c)2008
* @author: darrenyuan
* @version: 1.0
* Create at: 2012-4-18 上午12:24:25
*
* Modification History:
* Date Author Version Description
* ------------------------------------------------------------------
* 2012-4-18 darrenyuan 1.0 1.0 Version
*/
package learnByInternet;
import java.io.*;
import java.util.zip.*;
/**
* @author Administrator
*
*/
public class ZipUsingJavaUtil
{
/*
* Zip function zip all files and folders
*/
public boolean zipFiles(String srcFolder, String destZipFile)
{
boolean result=false;
try
{
System.out.println("Program Start zipping the given files");
/*
* send to the zip procedure
*/
zipFolder(srcFolder,destZipFile);
result=true;
System.out.println("Given files are successfully zipped");
}
catch(Exception e)
{
System.out.println("Some Errors happned during the zip process");
}
finally
{
return result;
}
}
/*
* zip the folders
*/
private void zipFolder(String srcFolder, String destZipFile) throws Exception
{
ZipOutputStream zip = null;
FileOutputStream fileWriter = null;
/*
* create the output stream to zip file result
*/
fileWriter = new FileOutputStream(destZipFile);
zip = new ZipOutputStream(fileWriter);
/*
* add the folder to the zip
*/
addFolderToZip("", srcFolder, zip);
/*
* close the zip objects
*/
zip.flush();
zip.close();
}
/*
* recursively add files to the zip files
*/
private void addFileToZip(String path, String srcFile, ZipOutputStream zip,boolean flag)throws Exception
{
/*
* create the file object for inputs
*/
File folder = new File(srcFile);
/*
* if the folder is empty add empty folder to the Zip file
*/
if (flag==true)
{
zip.putNextEntry(new ZipEntry(path + "/" +folder.getName() + "/"));
}
else
{ /*
* if the current name is directory, recursively traverse it to get the files
*/
if (folder.isDirectory() )
{
/*
* if folder is not empty
*/
addFolderToZip(path, srcFile, zip);
}
else
{
/*
* write the file to the output
*/
byte[] buf = new byte[1024];
int len;
FileInputStream in = new FileInputStream(srcFile);
zip.putNextEntry(new ZipEntry(path + "/" + folder.getName()));
while ((len = in.read(buf)) > 0)
{
/*
* Write the Result
*/
zip.write(buf, 0, len);
}
}
}
}
/*
* add folder to the zip file
*/
private void addFolderToZip(String path, String srcFolder, ZipOutputStream zip)
throws Exception
{
File folder = new File(srcFolder);
/*
* check the empty folder
*/
if (folder.list().length == 0)
{
System.out.println(folder.getName());
addFileToZip(path , srcFolder, zip,true);
}
else
{
/*
* list the files in the folder
*/
for (String fileName : folder.list())
{
if (path.equals(""))
{
addFileToZip(folder.getName(), srcFolder + "/" + fileName, zip,false);
}
else
{
addFileToZip(path + "/" + folder.getName(), srcFolder + "/" + fileName, zip,false);
}
}
}
}}
分享到:
相关推荐
在Java Web开发中,`jsp:include`和`<jsp:include>`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...
fatal error: pcre2.h: No such file or directory 27 | #include "pcre2.h" 安装swoole遇到错误,把pcre2.h 放到、usr/include下
include oraclejava::install 或者 class { 'oraclejava::install': } 默认行为是安装具有无限 JCE 的 java8。 它不会自动升级。 如果你想升级java8,你可以使用ensure参数: class { 'oraclejava::install': ensure...
在JavaServer Pages (JSP) 技术中,`<jsp:include>` 和 `<%@ include %>` 是两个用于页面组合的指令,它们虽然都用于将一个或多个文件的内容插入到主页面中,但它们的工作机制和使用场景有所不同。理解这两者的区别...
fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory 【错误】fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory 【原因】stdint.h是c99标准的头文件,vc不...
3. 检查源代码:确认代码中包含了正确的`#include`指令,例如`#include <boost/feature_matcher/boostdesc_bgm.i>`。 4. 检查编译选项:确保编译器知道在哪里寻找Boost库的头文件和库文件。 5. 重新生成或获取缺失...
解决方案】 ... 2. 解压后把inttypes.h和stdint.h放到vc的include目录就可以了。我安装的是VS2008,安装到的默认位置,因此include的路径就是:C:\Program Files\Microsoft Visual Studio 9.0\VC\include
my_config.h: No such file or directory. 解决办法:1)mysql版本太高,可降低版本 --此路一般不会考虑 2)注意下载的mysql-python的版本是否符和当前版本兼容 2)下载附件中的文件,放至/usr/include目录下,重新...
fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory. stdint.h是c99标准的头文件,vc不支持,所以肯定会...使用方法:下载压缩包,解压得到两个.h文件,存放到vs安装目录中的VC\include下。
例如,conf_init.c文件引用../include/MyTypes.h头文件,而这个头文件又引用/usr/include/stdint.h头文件,以此类推。只有正确地引用头文件,编译器才能正确地编译程序。 最后,总结来说,解决gnu/stubs-32.h文件不...
在编程过程中,我们时常会遇到“无法打开包括文件:“gl/glut.h”: No such file or directory”的错误提示,这通常意味着系统找不到指定的头文件,即`glut.h`。`GLUT`(OpenGL Utility Toolkit)是OpenGL的一个辅助...
解压后把所有文件放到对应的目录`opencv_contrib-3.4.x/modules/xfeatures2d/src/`中! 该压缩包包含了以下文件: boostdesc_bgm.i boostdesc_bgm_bi.i boostdesc_bgm_hd.i boostdesc_lbgm.i boostdesc_binboost_064...
在Java Web开发中,`<jsp:include>`动作是一个非常重要的元素,用于动态地将一个页面包含到另一个页面中。这个动作使得开发者可以实现页面的重用和模块化设计,提高代码的可维护性。本实验的目标是让学生掌握`<jsp:...
fatal error: zmq.hpp: No such file or directory compilation terminated. 找不到zmq.hpp的原因是, zmq.hpp只存在master中。 如果你使用release版本,那么是没有zmq.hpp这个文件的。去master中找到zmq.hpp。 将...
error C1083: 无法打开包括文件:“gl\GLAux.h”: No such file or directory 原来是:#include 出错 ==================================================== 解决方法如下: 1:下载此资源包 2:【glaux.dll】 复制...
2 解压 .zip 文件到目录,比如:D:\backupsoftware 3 添加环境变量到path, 比如: D:\backupsoftware\swigwin-3.0.12 4 添加环境变量 JAVA_INCLUDE 和...JAVA_INCLUDE: D:\jdk1.3\include JAVA_BIN: D:\jdk1.3\bin
下载该文件后,分别将glaux.h、glaux.dll、glaux.lib拷贝到VS2013的安装目录即:VS2013/VC/lib ; VS2013/VC/bin ; VS2013/VC/include/GL中,重新编译即可。
Caused By: org.apache.ibatis.builder.BuilderException: Could not find SQL statement to include with refid 'SAD02.SAD02_COL' at org.apache.ibatis.builder.xml.XMLStatementBuilder$IncludeNodeHandler....
网友分享的能够解决fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory问题的程序。MySQL-python-1.2.3.win32-py2.7.exe-32位MySQL-python-1.2.3.win-amd64-py...