今天主要介绍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;
}
分享到:
相关推荐
3. 文件解压缩:支持解压到指定目录,自动识别和处理压缩包内嵌套的子目录结构。 4. 用户界面友好:提供图形化操作界面,简化用户操作流程。 5. 错误处理完善:对可能出现的异常情况进行捕获和处理,确保程序稳定...
实验报告——数据库的简单查询和连接查询, 包括实验的基本要求,实验目的,试验运行要求,实验原理,实验步骤,实验内容,实验数据,实验总结。此报告仅供学习交流使用!
Java实现压缩与解压缩功能源码,简单易用。直接嵌套在你需要的地方即可。
本代码主要利用MATLAB工具实现MATLAB——求解for嵌套循环,简单明了,易于理解
包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。
1.0 基础 Java 自学之路(超仔细含练习项目及源码) 2.Java知识体系最强总结(含各个阶段的面试题) 3.Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,...
安卓Android源码——嵌套TabHost示例.zip
多层嵌套循环 参数转换 数据库配置报文父子级结构 java实现
本Java精华内容深入Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及...
java try…catch嵌套捕获异常的实例 java try…catch嵌套捕获异常的实例
java ZIP和RAR 压缩包 目录结构。 1.ant.jar 解决java自带zip不能读取中文压缩包的问题; 2.需要安装WINRAR软件,以便解压rar文件,然后获取对应目录; 3.实现在线预览压缩包目录结构的功能;
java代码-使用java循环嵌套九九乘法表的源代码 ——学习参考资料:仅用于个人学习使用!
java freemark list嵌套导出word
Android开发——listview中嵌套checkBox复选框实现单选、全选删除列表内容 详情可以看我的博客http://blog.csdn.net/jxnk25/article/details/50358231
无bug带属性填充包括对象嵌套属性填充与多文件上传及所有标签
这是一个关于Java的for语句嵌套练习,可以打印出各种星型,供大家学习,很有意思哦~~
java 压缩和解压 demo 解决中文乱码 这是本人做好的一个关于java压缩、解压缩文件或文件夹的demo,解决了中文乱码的问题,可以压缩或解压缩嵌套文件夹。一个ZipHelper + ant.jar轻松解决^_^,希望可以帮助到大家!具体...
开始想的是支持根据关键字从jar文件里查找文件名以及路径,后来做的通过用了,可以从jar,rar,war,zip等压缩文件查找文件,也支持嵌套查询,比如rar文件里还有rar这样的情况。。。 本软件略微有一点点小广告,在...