今天項目中用到了將word壓縮成zip文件供用戶下載,特記下以後備用
/**
* function:把指定目錄下面的所有文件壓縮成一個ZIP
* creator:morris
* create date:2009/05/31
* updater:
* update date:
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class ZipFile {
private String destinationDir = null; // zip file dir
private String fileName = null; // zip file name
private ZipOutputStream zout; // zip class
private ZipInputStream zin;
public ZipFile(String temp1,String temp2){
this.destinationDir = temp1;
this.fileName=temp2;
}
public void newZip() throws FileNotFoundException {
File temp=new File(this.destinationDir);
temp.mkdirs();
zout =
new ZipOutputStream(
new FileOutputStream(
this.destinationDir + "\\" + this.fileName));
}
//首先刪除該文件夾下所有文件
public void deleteAllFile(File tempDir) throws Exception {
File temp_file[] = null;
temp_file = tempDir.listFiles();
for (int i = 0; i < temp_file.length; i++) {
if (temp_file[i].isFile()) {
temp_file[i].delete();
}
}
}
//壓縮文件夾下面的所有文件為ZIP文件
public void createZipFile(File tempDir) throws Exception {
File temp_file[] = null;
byte temp[] = new byte[512];
temp_file = tempDir.listFiles();
for (int i = 0; i < temp_file.length; i++) {
if (temp_file[i].isFile()) {
FileInputStream in = new FileInputStream(temp_file[i]);
String temp1=new String(temp_file[i].getAbsolutePath().getBytes("ISO8859-1"));
if(!temp1.endsWith("zip")){
ZipEntry zip =
new ZipEntry(temp_file[i].getName());
zout.putNextEntry(zip);
int len = 0;
while ((len = in.read(temp)) != -1) {
zout.write(temp, 0, len);
}
zout.closeEntry();
}
}else{
createZipFile(temp_file[i]);
}
}
}
public void closeZip() throws Exception{
this.zout.close();
}
public void getZipFile(File tempDir){
try{
this.newZip();
this.createZipFile(tempDir);
this.closeZip();
}catch(Exception e){
e.printStackTrace();
}
}
//解壓ZIP文件
public void refreshZipFile() throws Exception{
ZipEntry temp=null;
FileOutputStream temp_file=null;
byte btemp[]=new byte[256];
zin=new ZipInputStream(new FileInputStream(this.destinationDir + "\\" + this.fileName));
while((temp=zin.getNextEntry())!=null){
File local=new File((new File(temp.getName())).getParent());
local.mkdirs();
temp_file=new FileOutputStream(temp.getName());
while(zin.read(btemp)!=-1){
temp_file.write(btemp);
}
temp_file.close();
zin.closeEntry();
}
zin.close();
}
}
分享到:
相关推荐
它可以将一个或多个文件压缩成一个 zip 文件,以便于文件传输和存储。 zip 命令选项 zip 命令提供了多种选项来控制压缩过程。以下是常用的选项: * -r:递归压缩目录,压缩指定目录下的所有文件和子目录。 * -m:...
总结起来,Java通过Apache Commons Compress库提供的API,可以方便地实现多层级目录的文件压缩和解压。`FileUtils.java`类是这个功能的具体实现,它封装了上述的压缩和解压过程,使开发者能够轻松地在代码中调用这些...
在Java编程中,将多个文件压缩成一个ZIP文件并实现下载是一个常见的任务,尤其是在处理大量数据或文件分发时。这个过程涉及到Java的I/O流、压缩和HTTP响应的使用。下面将详细介绍如何实现这个功能。 首先,我们需要...
在PHP开发中,经常需要对文件进行压缩操作,比如将一个或多个文件压缩成一个ZIP文件以供下载或其他处理。本篇将详细介绍如何利用PHP内置的`ZipArchive`类来实现这一功能。 #### 二、`ZipArchive`类简介 `Zip...
- `ZipFile.CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName)`: 这个方法用于将指定目录下的所有文件和子目录压缩成一个ZIP文件。 - `ZipFile.AddFile(string fileName, ...
这行代码会将指定的sourceDirectory目录及其所有内容压缩成一个ZIP文件。 2. **添加文件到ZIP** 如果需要压缩单个文件,可以使用ZipFile.ExtractToDirectory方法。不过,更灵活的方式是直接使用ZipArchive类。首先...
在日常工作中,经常需要将一个文件夹内的所有文件压缩成一个ZIP文件,以便于传输或存储。Python作为一种强大的编程语言,提供了多种方法来实现这一功能。下面详细介绍如何使用Python内置的`zipfile`模块来压缩指定...
我们先来看看如何将多个文件打包成一个ZIP文件。 1. **打包文件到ZIP** - 首先,创建一个`ZipOutputStream`对象,它需要一个`FileOutputStream`作为参数,指定输出的ZIP文件路径。 - 然后,对于每个要打包的文件...
1. `compress_files(src_dir, zip_file)`: 这个函数接收一个源目录`src_dir`和一个ZIP文件名`zip_file`,将目录下的所有文件和子目录压缩到指定的ZIP文件中。 2. `extract_zip(zip_file, dest_dir)`: 接收ZIP文件名...
这个示例会将指定的三个文件(file1.txt、file2.txt、file3.txt)压缩到一个名为"output.zip"的Zip文件中。 6. **注意事项**: - 确保在处理文件和流时正确地管理异常,以防止资源泄露。 - 如果要压缩的文件不在...
通过`ZipFile.CreateFromDirectory`方法,我们可以将一个目录及其所有内容压缩成一个Zip文件。同样,为了实现解压功能,`ZipFile.ExtractToDirectory`方法则用于将Zip文件内容解压到指定目录。 接下来,我们来探讨...
zip 命令是 Linux 系统中最常用的压缩命令,它可以将多个文件压缩成一个文件,以节省硬盘空间。zip 命令的语法非常简单,只需要在后面加上压缩后的文件名,以及要压缩的文件即可。 zip 命令的参数非常多,在这里...
1. **compressFilesToZip**:这个方法接受一个文件或目录列表,然后将它们压缩成一个ZIP文件。开发者可以根据需求设置压缩级别、是否添加密码等选项。 2. **unzipFile**:此方法接收一个ZIP文件路径和目标解压缩...
这段代码会将指定的文件(`sourceFilePath`)压缩成一个ZIP文件(`zipFilePath`)。`ZipOutputStream`用于创建ZIP文件,`ZipEntry`表示压缩文件的条目,通过`putNextEntry`方法添加到ZIP流中,然后读取原始文件并...
本文将详细介绍两种不同的方法来实现这一功能,结合给定的资源"java多个word文件合并.zip",我们将探讨如何使用JACOB库和Apache POI库来完成这个任务。 1. **JACOB库**: JACOB(Java COM Bridge)是一个开源的...
`zip`命令主要用于将一个或多个文件压缩成一个.zip文件,其基本语法为: ``` zip [选项] <压缩文件名> [文件...] ``` 其中,`<压缩文件名>`是你想要创建的.zip文件的名字,`[文件...]`则是你想要压缩的文件列表。 #...
ZIP 是一种广泛使用的文件压缩格式,它将多个文件打包成一个单独的压缩文件,从而有效地减少了存储空间的需求以及文件传输的时间。这种压缩方式非常适合在网络上传输大量文件或备份数据等场景。解压缩 ZIP 文件则是...
通过对整个ZIP文件中的每个条目调用此方法,可以将所有文件解压到指定的目录。 3. **在线压缩**:在线压缩涉及`addFile()`或`addFromString()`方法。前者用于添加服务器上的现有文件到ZIP,后者则允许直接从字符串...
这种方法可以将多个文件压缩成一个zip文件,以便于文件的存储和传输。下面我们将详细介绍Java实现多文件压缩打包的方法。 压缩多个文件成一个zip文件 要将多个文件压缩成一个zip文件,我们可以使用Java的...
此方法用于将指定的文件夹内的所有文件压缩成一个ZIP文件。如果`zipFilePath`为空,则默认ZIP文件名为`dirPath + ".zip"`。 ##### 实现细节 - 检查`dirPath`是否为空或不存在。 - 获取文件夹内所有文件。 - 使用`...