一开始,简简单单的几行代码就可以实现zip压缩,我啊,也傻了这些!
OutputStream ops=new FileOutputStream(tarZip);
ZipOutputStream zipops=new ZipOutputStream(ops);
//建立一个zip文件条目
ZipEntry entry = new ZipEntry("haha.txt");
//进行保存zipoutputStream 流中
zipops.putNextEntry(entry);
zipops.write("yanming".getBytes(),0, 4);
zipops.close();
这是一个非常简单的,zip制作压缩包,弄明白这些,你就可以开始编码了!在这里,我共享我的全部代码,希望对学者有所帮助,如有不懂---QQ:962589149
public static void zipFile(String dirPath,File file,ZipOutputStream zipops) throws Exception
{
byte[] b = new byte[1024];
if(file.isDirectory())//是目录
{
ZipEntry ze = new ZipEntry(dirPath + file.getName() + "/");
zipops.putNextEntry(ze);
//迭代
for (int i = 0; i < file.listFiles().length; i++) {
zipFile(dirPath + file.getName() + "/", file.listFiles()[i],zipops);
}
}else//是文件时
{
int p=0;
FileInputStream fis=null;
try
{
//进行读取
fis = new FileInputStream(file);
ZipEntry ze = new ZipEntry(dirPath + file.getName());
zipops.putNextEntry(ze);
while ((p = (fis.read(b))) > 0) {
zipops.write(b, 0, p);
}
}catch(Exception ex){
throw new Exception("压缩文件时出现错误(zipFile)");
}finally
{
if(fis!=null)
{
fis.close();
}
}
}
}
public static boolean doComPress(String dirPath,String tarZip) throws Exception
{
ZipOutputStream zipops=null;//zip输出流
//目标zip文件
OutputStream ops=new FileOutputStream(tarZip);
zipops=new ZipOutputStream(ops);
ZipEntry entry=null;
try
{
File dirFile=new File(dirPath);
if (!dirFile.isDirectory()) {
throw new Exception("传入的不是文件夹目录");
}
//获取根目录
String dirName = dirPath.substring(dirPath.lastIndexOf("/") + 1);
//处理C://yanming//
if (dirName == null || "".equals(dirName)) {
String subStr = dirPath.substring(0, dirPath.length() - 2);
dirName = subStr.substring(subStr.lastIndexOf("/") + 1);
}
entry = new ZipEntry(dirName+"/");
zipops.putNextEntry(entry);
//获取子文件目录
File[] files=dirFile.listFiles();
//进行迭代
for(int i=0;i<files.length;i++)
{
zipFile(dirName + "/", files[i], zipops);
}
}catch(Exception ex)
{
}finally
{
if(zipops!=null)
{
zipops.close();
}
}
return false;
}
分享到:
相关推荐
### VBS 脚本实现 ZIP 文件的压缩与解压缩 在日常工作中,我们经常会遇到需要对文件进行压缩或解压缩的情况。对于批量处理任务,使用脚本语言可以大大提高效率。Visual Basic Script(VBS)作为Windows环境中的一种...
VB6.0调用 DLL版ZIP压缩文件夹目录和解压ZIP文件,网上很多源码不好用,所以就自己做了一个。原始代码是VC++的用VS2019编译了一个,DLL封装了下。调用很简单 '调用方法如下: 'CreateZipFileA "C:\123", "C:\123.zip...
压缩文件方法 该方法需要引用zip4j的jar文件 单个文件、多个文件压缩 /** * 使用给定密码压缩指定文件或文件夹到指定位置. * * dest可传最终压缩文件存放的绝对路径,也可以传存放目录,也可以传null或者""....
本篇文章将详细介绍如何在`C++`中利用`Zlib`库实现对`zip`文件的压缩和解压,并特别关注其支持的递归压缩特性,以及如何将其与自动更新功能结合使用。 首先,我们需要理解`Zlib`库的基本原理。`Zlib`库基于`DEFLATE...
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
此外,源代码还支持将ZIP文件解压到指定目录,而且能够保持原有的目录结构不变。这一点对于文件的管理和维护非常重要,因为原始的文件结构有助于保持数据的逻辑性和易访问性。第三种功能是将ZIP文件中的内容解压到...
`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压ZIP文件。为了添加密码保护,我们需要在创建`ZipOutputStream`时设置一个密码。 1. **密码保护**:在压缩过程中,可以使用`ZipEntry`对象来...
总结来说,`zip文件压缩解压源码(C++)`涉及的关键技术包括:理解zip文件格式,使用C++进行文件操作,选择和应用压缩算法,以及错误处理。通过分析和理解`XUnzip.cpp`和`XZip.cpp`,我们可以学习如何在C++环境中...
本文将深入探讨如何使用Java实现ZIP和RAR类型的压缩与解压操作,以及相关知识点。 首先,我们来看ZIP文件格式。ZIP是一种广泛使用的文件压缩格式,其在Java中的处理主要通过`java.util.zip`包。这个包提供了多个类...
1.压缩解压zip格式的,不需要dll或者库...2.:解决当解压加密过的zip时,如果文件经过了压缩,那么解压后的文件会缺少最后的12字节; 3.如果文件没有经过压缩(也就是直接打包的方式),会造成死循环 4.开发环境VS2008
在AS3.0中处理ZIP压缩和解压涉及到了对二进制数据的操作以及文件读写,这对于开发Flash应用或游戏尤其重要,因为这些应用通常需要处理大量的资源。 在AS3.0中,没有内置的ZIP库,但可以通过第三方库来实现ZIP的压缩...
2. `extract_zip(zip_file, dest_dir)`: 接收ZIP文件名`zip_file`和目标解压目录`dest_dir`,将ZIP文件解压到指定目录,保持原有的文件结构。 这两个函数内部可能涉及以下步骤: - 遍历文件/目录:对源目录进行...
本文将详细介绍一个基于C++的zip文件处理方法,它允许开发者通过仅包含几个头文件就能实现文件的压缩和解压缩功能。这个解决方案简洁易用,非常适合那些需要在C++项目中集成压缩功能的开发者。 标题中的"C++ zip解...
在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...
本文将详细介绍如何使用CZip和CUnzip类来处理文件的压缩与解压缩任务。 首先,我们需要了解CZip和CUnzip类的基本概念。CZip类提供了创建、打开、添加、删除和提取ZIP文件的功能,而CUnzip类则负责从ZIP文件中提取...
对于识别出的压缩文件,我们可以调用7-Zip API中的解压函数进行解压。这个过程可能涉及到打开压缩文件、获取文件列表、选择需要解压的文件以及指定目标解压路径等多个步骤。在易语言中,这通常需要编写自定义的函数...
总结来说,解压Android应用中的ZIP文件到SD卡需要理解Android的权限管理机制,熟悉文件操作,以及掌握ZIP文件处理。通过这些知识,开发者能够为用户提供更丰富的功能,例如离线数据包下载、游戏资源预加载等。
在日常的跨平台文件传输中,...通过合理选择压缩工具、上传方式以及转换工具,我们可以有效地解决Windows下压缩的ZIP文件在Linux上无法解压的问题。同时,理解这些差异对于日常的系统管理和开发工作也是非常重要的。
首先,`unzip.cpp`和`zip.cpp`是实现压缩和解压功能的源代码文件,它们可能包含了对压缩库的具体实现,如ZIP或RAR格式的处理。`unzip.h`和`zip.h`则是对应的头文件,包含了函数声明和必要的数据结构定义。在MFC项目...