atitit.java提取zip rar文件列表

1. 取zip rar文件的场景问题 1

1.1. 多重压缩的问题 1

1.2. 文件名编码的问题 1

1.3. 目录的判定 1

2. rar的解析 1

2.1. JAVA使用 java-unrar-0.3.jar 解压rar,并且解决中文乱码(推荐) 2

2.2. mucommande 2

3. -------code 2

3.1. rrar  code  rarx 4

4. 参考 5

1. 取zip rar文件的场景问题

1.1. 多重压缩的问题

为了获取一个压缩包中的文件,而该压缩包里可能又含有压缩包 、文件夹、文件夹里又包含压缩包、文件等各种嵌套的情况,采用广度优先遍历和深度优先遍历的方法解决了此问题。

多重压缩包的获取压缩包内的文件列表。。如果是二级子压缩包,则需要解压到临时目录,然后单层获取。。不能直接获取子压缩包目录。

1.2. 文件名编码的问题

jdk的有编码问题。使用apache的包,使用gbk编码就可。。

1.3. 目录的判定

目录,也与子文件处于同一同级了。直接next即可。。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. rar的解析

用java怎么提取或是解压rar压缩文档?以前查了很多的资料,没有找到相关的第三方库,网上查找的资料说是解析rar只能更加rar的命令行参数来解析。因为rar压缩文档的内部结构是没有共开的。所以没有专门的解析库程序。自己也就只好用命令行了,但是在实际应用中,遇到rar加密时就遇到了问题。

所以自己又在网上很费心的找了相关资料,终于找到了一个库可以解析rar文档。

库下载地址:http://www.mucommander.com/。这是个解决多种文档的软件,是用java写的。所以能够引用来解决rar的解析。

mucommander9 三吗内五六个个api了。。8MuCommander-v0.82.rar 三。少了俩个package。。嫩欣赏几个pkg了。官网上的不好下载。直接下载,可是个独立的软件,到时好西藏质量。。。giveup

2.1. JAVA使用 java-unrar-0.3.jar 解压rar,并且解决中文乱码(推荐)

有个项目需要解压rar,上网搜索一下大家都在用  java-unrar-0.3.jar ,于是写了一个util方法解压rar

2.2. mucommande

3. -------code

prj。atibrow。zipx

/**

* @param args

*/

public static void main(String[] args) {

try {

final String zipFileName = "E:\\00\\product3.zip";

readZipFile(zipFileName, "gbk", new Closure2() {

@Override

public Object execute(Object arg0)   {

System.out.println("unziping " +zipFileName+"/"+arg0);

return null;

}

});

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

unziping E:\00\product3.zip/product3/product.sql

unziping E:\00\product3.zip/product3/proxy2.zip

unziping E:\00\product3.zip/product3/dir2/导出 - 全部词条 ati pc in com.rar

public static void readZipFile(String zipFileName, String encode,

Closure2  clos) {

// = "utf-8";

String path = new File(zipFileName).getParent();

org.apache.tools.zip.ZipFile zipFile = null;

try {

zipFile = new ZipFile(zipFileName, encode);// , encode

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

// new org.apache.tools.zip.ZipFile(zipFileName);

java.util.Enumeration e = zipFile.getEntries();

org.apache.tools.zip.ZipEntry zipEntry = null;

while (e.hasMoreElements()) {

zipEntry = (ZipEntry) e.nextElement();

String zipFileName2 =   zipEntry.getName();

//path_now=zipFileName2;

if(zipEntry.isDirectory())

{

continue;

}

clos.execute(zipFileName2);

}

}

3.1. rrar  code  rarx

prj。atibrow。rarx

*/

public class RarX {

public static void main(String[] args) throws Exception {

unrar("E:\\down\\51vpn.rar", new Closure2() {

@Override

public Object execute(Object arg0) {

System.out.println(arg0);

return null;

}

});

}

/**

* } 解压rar格式压缩包。

* 对应的是java-unrar-0.3.jar,但是java-unrar-0.3.jar又会用到commons-logging-1.1.1.jar

*/

private static void unrar(String sourceRar, Closure2 cls) {

Archive a = null;

FileOutputStream fos = null;

try {

a = new Archive(new File(sourceRar));

} catch (RarException e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

}

FileHeader fh = a.nextFileHeader();

while (fh != null) {

if (!fh.isDirectory()) {

cls.execute(fh.getFileNameString());

}

fh = a.nextFileHeader();

}

try {

a.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

a = null;

}

}

4. 参考

java怎么读取Zip和RAR里面的文件啊?_百度知道.htm

java获取递归获取嵌套压缩包(zip和rar)中的所有文件-Java-第七城市.htm

java提取rar文档中的文本数据 - wqjsir的专栏 - 博客频道 - CSDN.NET.htm

atitit.压缩算法 ZLib ,gzip ,zip 最佳实践 java .net php - attilax的专栏 - 博客频道 - CSDN.NET.htm

Atitit. 解压缩zip文件 的实现最佳实践 java c# .net php - attilax的专栏 - 博客频道 - CSDN.NET.htm

atitit.提取zip rar文件列表 java php c# 的原理与设计相关推荐

  1. web上传zip大文件,java服务接收并解压ZIP文件

    目录 一.背景 二.知识点 三.代码实现 1.依赖 2.web 代码 3. java服务端 一.背景 公司产品小伙伴画了原型后,需要上传到服务器上供开发查看:由于文件数量很多,100M左右差不多要传3 ...

  2. electron 解压zip_如何将Node.js中的.zip/.rar文件解压缩到文件夹中

    的解压与目录结构的zip文件内袋 var Zip = require('machinepack-zip'); //解压缩指定的.zip文件和写解压缩的文件/目录作为指定的目标目录的内容. Zip.un ...

  3. 算符优先文法编写java语法分析器,编译原理课程设计实验报告——基于算符优先分析方法的表达式语法分析器...

    内容简介: 一.设计目的 了解用算符优先法对表达进行语法分析的方法,掌握自顶向下的预测语法分析程序的手工构造方法. 二.设计内容 对简单表达式文法构造算符优先分析器. 三.设计要求 1.对下列简单表达 ...

  4. java获取文件列表,[javaSE] java获取文件列表

    递归测试 import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Lis ...

  5. electron 解压zip_如何在Electron Framework中提取.zip文件的内容(解压缩)

    本文概述 必须先将其解压缩, 然后才能开始实际使用zip文件中的内容(文件).在本文中, 你将学习如何使用Electron Framework和decompress-zip模块解压缩.zip文件. 要 ...

  6. centos rar 文件打开办法

    http://hi.baidu.com/nmxiaoxin/item/7642a139918a95677d034b6a Centos下解压rar.zip文件的方法 ============zip文件的 ...

  7. dos 压缩 %3c html%3e,dos下生成zip压缩文件

    使用winzip命令行对文件打包压缩 大家都知道winzip对文件解压和压缩都易如反掌,但是如何通过程序和命令行对其调用呢? 去 下载dos版的winzip,下载后直接安装,就会在winzip的目录中 ...

  8. python字典zip函数_python中如何使用zip函数将列表合并为字典?

    python的作用很强大,列表和字典是两个不同类型的代码格式,虽然列表不能直接转换为字典,但是可以通过zip函数将列表合并为字典,实现列表转换为字典的需求.本文介绍zip函数实现列表合并为字典的原理和 ...

  9. java实现上传zip/rar压缩文件,自动解压

    在pom中添加解压jar依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q ...

  10. Java解压上传zip或rar文件,并解压遍历文件中的html的路径

    1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception {HttpSession session = request.getSes ...

最新文章

  1. Nature:根系菌群参与磷胁迫和免疫的平衡
  2. eclipse for C/C++
  3. codeblocks常用配置
  4. [codeforces 508E]Maximum Matching
  5. early z optimization
  6. Windows API一日一练(2)使用应用程序句柄
  7. poj 3083 DFS
  8. html怎样添加css样式,html添加css样式的方法
  9. php注册页面模板,选项卡式WordPress登陆注册模板
  10. python中exception类的_面试题 | 列举几个Python中的标准异常类?
  11. 写论文必须养成的十大良好写作习惯
  12. vscode用作markdown入门2--代码上下标目录字体
  13. 关于js的引用类型和基本类型
  14. 32位和64位操作系统,二者有何区别?是否64位更快?
  15. 【数据结构】堆的手动模拟实现
  16. 如何设置csdn为谷歌浏览器默认搜索引擎
  17. 2023成都理工大学计算机考研信息汇总
  18. 聚合购物一站式采购平台HTML网站源码
  19. Python WEB 开发,什么是 WSGI ?uWSGI、Gunincorn 都是啥玩意儿?
  20. 绝对公平?破解北京机动车摇号的秘密

热门文章

  1. 我的世界如何开直连服务器,我的世界服务器如何连接 连接服务器教程
  2. java中try中的语句执行吗_Java异常try里面有return,finally代码会执行吗
  3. 单CPU环境中如何实现多进程并行工作?
  4. 《libGDX移动游戏开发从入门到精通》一1.5 其他的一些准备工作
  5. eclipse 批量 查询 替换
  6. 设计鲁棒性的方法:输入一个链表的头结点,逆序遍历打印该链表出来
  7. 删除root 家目录,及恢复方法
  8. flask ai 简单语音对话
  9. WIN7下 VS2008 无法调试ASP.NET
  10. pdfplumber库解析pdf格式