import java.io.File;
import org.apache.tools.zip.ZipOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* @author tyrone
*
*/
public class DirectoryZip {
/**
*@param inputFileName, file or directory waiting for zipping ,outputFileName output file name
*
*/
public void zip(String inputFileName,String outputFileName) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFileName));
zip(out, new File(inputFileName), "");
System.out.println("zip done");
out.close();
}
private void zip(ZipOutputStream out, File f, String base) throws Exception {
if (f.isDirectory()) {
File[] fl = f.listFiles();
if (System.getProperty("os.name").startsWith("Windows")){
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "\\"));
base = base.length() == 0 ? "" : base + "\\";
}
else{
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));
base = base.length() == 0 ? "" : base + "/";
}
for (int i = 0; i < fl.length; i++) {
zip(out, fl[i], base + fl[i].getName());
}
}
else {
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
System.out.println(base);
while ( (b = in.read()) != -1) {
out.write(b);
}
in.close();
}
}
public static void main(String[] args){
DirectoryZip m_zip=new DirectoryZip();
try{
m_zip.zip(args[0],"release\\2005.zip");
}catch(Exception ex){
ex.printStackTrace();
}
}
}
分享到:
相关推荐
java 解压缩目录下的所有文件 需要用的ant.jar 可以解决中文乱码问题
在Java编程语言中,压缩文件或文件目录是一项常见的任务,主要使用了Java的`java.util.zip`包中的类。这个包提供了对ZIP和GZIP格式的支持。本文将深入讲解如何利用Java来直接压缩文件或文件目录,以及如何进行相关的...
本文将深入探讨如何使用Java来处理压缩文件,特别是针对标题提及的“java压缩文件以及文件夹”。我们将主要关注`ZipCompressor.java`这个类,它是实现文件和文件夹压缩的核心工具。 首先,让我们了解`java.util.zip...
在Java编程语言中,压缩文件夹到指定目录和指定名称是一项常见的任务,这通常涉及到对文件系统的操作和使用压缩库。Java提供了多种方法来实现这一功能,比如使用内置的`java.util.zip`包或者第三方库如Apache ...
1、压缩文件或者目录(只是压缩不删除):zipFileOrDirectory 2、程序自动判断如果是文件那么就是源文件下载,如果是文件夹那么就先 压缩然后再下载,然后再删除:downFileDel 3、不管什么文件都是最后以zip下载:...
* 如果为false,将直接压缩目录下文件到压缩文件. * @param passwd 压缩使用的密码 * @return 最终的压缩文件存放的绝对路径,如果为null则说明压缩失败. */ 方法详细见文件! 可选择文件list压缩 /** * 使用...
在压缩文件时,我们需要遍历目标文件或目录,获取所有子文件和子目录。这可以通过递归函数实现,使用`File`类的`listFiles()`方法来获取子文件和子目录的数组。 5. **创建ZipEntry**: 对于每个文件或子目录,...
7. **递归处理**:在压缩或解压缩整个目录时,通常需要递归处理子目录和其下的所有文件。这涉及到文件系统遍历和递归函数的使用。 8. **错误处理**:在实际编程中,必须考虑可能出现的异常情况,如文件不存在、权限...
Java在Linux环境下对GZ压缩文件的处理是一个常见的任务,特别是在处理大文件或者网络传输时。GZ是一种常用的文件压缩格式,它利用了gzip程序进行压缩,而在Java中,我们可以使用`java.util.zip`包中的类来实现对GZ...
通常情况下,文件压缩是在客户端或服务器端执行的任务,用于减少文件大小、优化存储空间或者便于在网络上传输。 #### 代码解析 下面详细介绍给出的代码示例: ```java import java.io.BufferedInputStream; import...
Java文件分割压缩是一种常见的操作,尤其在处理大数据或者网络传输时非常有用,因为单个大文件可能会导致处理效率低或传输困难。以下是一些相关的Java编程知识点: 1. **文件I/O操作**:在Java中,`java.io`包提供...
本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...
在Java编程语言中,压缩文件是一项常见的任务,用于减少文件的存储空间,提高传输效率。HUFFMAN编码是一种数据压缩算法,它基于字符频率构建一棵最优的二叉树来进行编码,广泛应用于文本压缩。本节将详细介绍如何在...
java 压缩目录中的所有文件 中文文件名不会乱码
java代码实现单个或多个文件压缩成rar包,本地要安装winRar插件。
在Java编程中,读取项目中的文件,特别是位于`src`目录下的文件,是一个常见的需求。这涉及到对项目结构的理解和使用Java I/O流的知识。`src`目录通常包含源代码文件,而运行时,这些文件会被编译并放置到类路径...
java批量压缩文件跟文件夹,目前还不支持中文名,后期会改进,谢谢
运行Ant时,只需在命令行中输入`ant create-archive`,Ant就会根据`build.xml`文件中的配置创建一个名为`output.zip`的压缩文件,其中包含了`source_directory`目录下所有的文件和子目录。 除了ZIP格式,Ant也支持...
zipEntry.setComment("压缩文件"); // 可以添加注释,同样需要指定字符集 zos.putNextEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { byte[] buffer...
### Java压缩文件目录成ZIP包最新技巧 在Java开发中,对文件或目录进行压缩是一项常见且实用的功能。本文将详细介绍如何使用`java.util.zip`包中的类来压缩文件及目录,并解决其中的一个常见问题——中文文件名或...