今天主要介绍JAVA处理ZIP文件,JAVA提供了相应的类、方法来处理ZIP的压缩文件:
public static boolean zipToFile(String sZipPathFile, String sDestPath) {
boolean flag = false;
try {
FileInputStream fins = new FileInputStream(sZipPathFile);
ZipInputStream zins = new ZipInputStream(fins);
ZipEntry ze = null;
byte ch[] = new byte[256];
while ((ze = zins.getNextEntry()) != null) {
File zfile = new File(sDestPath + "//" + ze.getName());
File fpath = new File(zfile.getParentFile().getPath());
if (ze.isDirectory()) {
if (!zfile.exists())
zfile.mkdirs();
zins.closeEntry();
} else {
if (!fpath.exists())
fpath.mkdirs();
FileOutputStream fouts = new FileOutputStream(zfile);
int i;
String zfilePath = zfile.getAbsolutePath();
while ((i = zins.read(ch)) != -1)
fouts.write(ch, 0, i);
zins.closeEntry();
fouts.close();
if (zfilePath.endsWith(".zip")) {
zipToFile(zfilePath, zfilePath.substring(0, zfilePath
.lastIndexOf(".zip")));
zfile.delete();
}
}
}
fins.close();
zins.close();
// if necessary, delete original zip-file
// File file = new File(sZipPathFile);
// file.delete();
flag = true;
} catch (Exception e) {
System.err.println("Extract error:" + e.getMessage());
}
return flag;
}
此解压方法支持压缩文件里面嵌套压缩文件(zip格式的压缩文件)
递归获得文件夹下面所有的文件:
public static List<Map> getAllFile(String path)
{
if(path.indexOf(".zip")>0)
{
zipToFile(path,tempPath);
getAllFile(tempPath);
}else{
File dir = new File(path);
File[] files = dir.listFiles();
if (files == null)
{
return null;
}
for (int i = 0; i < files.length; i++) {
Map map = new HashMap();
if (files[i].isDirectory()) {
getAllFile(files[i].getAbsolutePath());
} else {
String filename = files[i].getName();
if(filename.indexOf(".zip")>0)
{
zipToFile(files[i].getAbsolutePath(),tempPath+"\\tempfile_"+i);
getAllFile(tempPath+"\\tempfile_"+i);
}else{
map.put("filepath", files[i].getAbsolutePath());
map.put("filename", files[i].getName());
filelist.add(map);
}
}
}
}
return filelist;
}
分享到:
相关推荐
【实验报告——数据库嵌套查询】 实验报告涵盖了数据库查询的基础和高级操作,特别是关于嵌套查询的使用。嵌套查询是SQL语言中的一个重要概念,它允许我们构建更复杂的查询结构,通过在一个查询内部嵌入另一个查询...
首先,Java标准库提供了一个名为`java.util.zip`的包,它包含了处理压缩文件所需的类。其中,`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压缩ZIP文件。 1. **压缩文件**: 要将一个或多...
3. 文件解压缩:支持解压到指定目录,自动识别和处理压缩包内嵌套的子目录结构。 4. 用户界面友好:提供图形化操作界面,简化用户操作流程。 5. 错误处理完善:对可能出现的异常情况进行捕获和处理,确保程序稳定...
基于JAVA压缩及解压缩RAR文件,可带密码
它主要包括Java运行环境(JRE)、Java虚拟机(JVM)、编译器、调试器等工具。 - **JDK的分支**:Java目前主要分为OpenJDK和Oracle JDK两大分支。OpenJDK是开源版本,适合对成本敏感的项目;Oracle JDK则是由Oracle...
这个库简化了在Java中处理压缩文件的过程,提供了丰富的API供开发者使用。 首先,我们来看`FileUtils.java`中的主要方法。通常,这个类会包含两个核心功能:`zipFiles()`用于创建ZIP包,`unzipFile()`用于解压ZIP包...
这些类可以用来压缩文件和文件夹。 2. **`ZipOutputStream`**: 这个类是`OutputStream`的一个子类,用于创建zip格式的流式输出。你可以通过添加`ZipEntry`来写入文件到zip档案。每个`ZipEntry`代表压缩包中的一个...
### Java压缩文件代码详解:基于Zip格式的文件压缩技术 #### 概述 在Java编程中,处理文件压缩是一项常见的需求,特别是在数据传输、存储优化或归档管理方面。Java标准库提供了强大的压缩功能,其中最常用的是基于...
本代码主要利用MATLAB工具实现MATLAB——求解for嵌套循环,简单明了,易于理解
`jre7`文件则是Java运行时环境,用于执行Java应用程序,包含JVM、Java核心类库和其他必要的支持文件。 对于程序员来说,这个解压缩版的JDK1.7适用于那些需要在64位操作系统上使用Java 7进行开发或者运行旧项目的...
在实际项目中,文件`InterfaceAuthManageServiceImpl.java`可能包含了服务层的接口授权管理实现,它可能会使用到上述的多层嵌套循环、参数转换以及数据库操作。而`model_manage_response_group_config.sql`可能是...
结合提供的压缩包子文件名称"LHMVCPRO",这可能是某个项目或库的名称,可能包含了实现上述功能的代码示例或库文件。具体实现细节可能包括API接口定义、数据库模型、前端界面组件以及相关的测试用例等。 总的来说,...
压缩包中的`freemarker_word`文件夹可能包含示例模板文件和相关的Java代码,用于演示如何使用FreeMarker处理嵌套列表并导出Word文档。这些文件可以作为参考,帮助理解实际操作过程。 通过以上步骤,我们可以利用...
在`CatchException_03.java`这个文件中,可能包含了实际的嵌套`try-catch`异常处理代码实例。配合`Java.jpg`可能是一个解释或演示这些概念的图片。为了深入理解,你应该阅读和分析这个源代码文件,并结合图片中的...
本Java精华内容深入Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及...
java ZIP和RAR 压缩包 目录结构。 1.ant.jar 解决java自带zip不能读取中文压缩包的问题; 2.需要安装WINRAR软件,以便解压rar文件,然后获取对应目录; 3.实现在线预览压缩包目录结构的功能;
在XML布局文件中,`TabHost`通常作为根元素,包含`TabWidget`和`FrameLayout`。`TabWidget`的`android:id`应设为`@android:id/tabs`,`FrameLayout`的`android:id`设为`@android:id/tabcontent`。在Java代码中,我们...
本文将深入探讨如何在Java中进行XML文件的导入与导出。 首先,理解XML的基本结构至关重要。XML文件由一系列的元素构成,每个元素都有可能包含子元素或者文本内容。元素通过开始标签 `<tag>` 和结束标签 `</tag>` ...
ZIP文件可以包含一个或多个压缩的文件或目录,甚至可以包含其他ZIP文件,形成嵌套结构。在本文中,我们将深入探讨ZIP压缩算法以及如何进行解压缩。 ### ZIP文件结构 ZIP文件的内部结构遵循一种特定的格式,主要...
例如,如果`InnerObject`还包含另一个嵌套的JSON对象,只需在Java类中添加相应的字段并定义相应的getter和setter即可。`ObjectMapper`会根据JSON结构解析并填充Java对象。 5. **反向操作:Java对象转JSON** 除了将...