java 使用7z进行解压_java调用7zip解压压缩包的实例
前言
最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题。
7zip命令行
7z [...] [...][]
7z的commands中包含添加文件到压缩包、从压缩包中删除文件以及提取文件等等多个命令,在这里我就不多赘述,有兴趣的可以在7zip的安装目录使用cmd运行7z.exe查看具体的命令。
今天我们要做的就是使用密码将压缩包中的文件提取出来,具体的命令如下:
7z x 压缩文件源路径 -o要解压的路径 -aoa -bse1 -p密码
• x : 表示从压缩包中提取文件
• -aoa : ao表示覆盖模式,最后的a表示直接覆盖现有文件而不需要任何提示
• -bs < o|e|p > < 0|1|2 >:set output stream for output/error/progress line
-bs命令其实我没有太明白,字面的意思大概是说为输出/错误/进程行设置输出流,如果不设置-bse1属性,当解压缩出现错误,例如文件找不到时,错误提示就会出现在cmd窗口中而不是生成的log文件中,因此必须加上-bse1命令
java通过cmd调用7zip解压
String filePath = "F:\\test\\新建 文本 文档.rar";
//将文件名称中的所有空格都替换为带有双引号的空格
filePath = filePath.replaceAll(" ","\" \"");
String command = "cmd /c start /B D:/工具/7zip/7-Zip/7z.exe x "+filePath+" -oF:/test/ -aoa -bse1 -p123 >F:/test/1.txt";
System.out.println(command);
Runtime.getRuntime().exec(command);
cmd命令解释
• cmd /c start 7z.exe 表示会启动7z来执行后面的命令,7z启动以后原来的cmd窗口会关闭
• cmd /k start 7z.exe 表示会启动7z来执行后面的命令,7z启动以后原来的cmd窗口不会关闭
• /B 表示启动应用程序,但是并不创建新的窗口
通过以上的代码就可以解压完成压缩包文件,如果要知道解压的密码是否正确或者压缩包是否损坏等信息,可以通过获取生成txt日志文件的内容来得知,这个不在本篇范围之后,后续再说。
遇到的问题
7z.exe文件路径找不到
出现该问题是由于7zip的安装路径中存在空格
• 选择7zip安装路径,不要安装在有空格的路径中
• 将路径中的空格使用双引号引起来,如C:“Program Files”\7-Zip或者“C:\Program Files\7-Zip”或者C:\Program“ ”Files\7-Zip
文件路径中存在连续多个空格导致文件找不到
出现该问题是由于
Runtime.getRuntime().exec(command)
方法在执行过程中,会将文件路径中的多个连续空格转换为单个空格,这种情况在文件全路径外面加上双引号也是不管用的
• 替换文件路径中的空格,将每一个空格都替换为带有双引号的空格即可
以上这篇java调用7zip解压压缩包的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250
java 使用7z进行解压_java调用7zip解压压缩包的实例相关推荐
- Mac解压Rar,7z,Zip,Winrar?Mac解压缩软件测评,推荐Mac上免费好用的解压软件,高效解压神器帮您解决苹果电脑的解压缩问题
Mac电脑自带的的Archive Utility无法解压rar格式,如何在Mac上解压Rar,7z呢?Mac上有没有像window一样能下载7zip,winrar这类的解压软件呢,肯定可以.但在主流的 ...
- java 分卷压缩_Apache Commons Compress介绍-Zip压缩解压
Zip格式应该是最出名的压缩格式之一了,zlib.gzip这些辈分很老的库大家应该都用过,甚至大部分其他格式的压缩库,都可以处理zip格式.Commons Compress当然也少补了对zip格式的支 ...
- java zip文件解压(含有密码解压)
maven需要加入以下依赖: <dependency><groupId>net.lingala.zip4j</groupId><artifactId>z ...
- java如何解压rar文件怎么打开_如何在java中实现对zip和rar文件的解压
如何在java中实现对zip和rar文件的解压 关注:101 答案:1 mip版 解决时间 2021-01-26 10:50 提问者芣①樣哋羙莮 2021-01-25 22:44 如何在java中 ...
- linux下 tar解压 gz解压 bz2等各种解压文件使用方法
点击打开链接 linux下 tar解压 gz解压 bz2等各种解压文件使用方法 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileN ...
- macbook上好用的解压软件_全能解压 Mac下最好用的解压缩软件
今天,小子要来分享的是Mac下一款好用的解压缩软件--全能解压,为什么说它好用呢?因为它拥有一个强大的功能--无需解压即可直接预览,这个功能对于很多朋友来说太实用了! 全能解压是一款RAR文件解压利器 ...
- android zip解压简书,iOS解压ZIP压缩包
步骤: 二:导入头文件 #import "SSZipArchive.h" 三:获取zip压缩包文件路径 获取文件的方式 方法一: NSString* filePath = [[NS ...
- 如何解压服务器系统,如何解压Linux系统下的zip文件
如何解压Linux系统下的zip文件 发布时间:2020-08-10 09:28:56 来源:亿速云 阅读:76 作者:Leah 这期内容当中小编将会给大家带来有关如何解压Linux系统下的zip文件 ...
- MAC解压软件推荐——全能解压
MAC解压软件推荐--全能解压 前言 一直以来,我都没有找到MAC上类似于haozip或者360压缩这样的好用的免费的压缩软件.keka这个软件不能预览压缩包内容,只能将文件解压出来看.而命令行的at ...
最新文章
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- python接口自动化-参数化
- 计算机二级办公室软件应用选择题,计算机二级,办公软件高级应用技术有没有选择题和判断题的...
- VHDL设计脉搏计的课程设计
- cocos2d-x游戏开发 跑酷(四) 关联与物理世界
- Multiverse: Revolutionary Backend for Alembic // Multiverse: 下一代Alembic后端
- 织梦重置mysql数据库密码忘记_织梦cms管理员密码忘记了怎么重置找回?
- modbustcp封装使用获取设备数据示例
- 美国NIST仍在与财政部和国防部就区块链支付跟踪项目合作
- 中国开源产品如何走向世界?
- 腾讯云TCP运维题库
- crc原理及c代码实现
- latex 参考文献没有显示_LaTeX 中的参考文献
- 实时vad(替换webrtcvad)
- Burg法参数化功率谱估计(Python实现版)
- 寻道,思考人生的价值(观小米十周年演讲有感)
- 基于单片机的踢球智能车系统设计
- 白鹭引擎(Egret Engine )
- 手机支架3d打印模型_新型高效率酶固定化3D打印支架
- 05人月神话读书笔记之一
热门文章
- java8高级应用与开发课件和贯穿案例(全)分享
- 解决Echarts柱形图正负数在同一侧,并设置正负值不同颜色
- Currency Exchange (SPFA)
- 大四会计转码 初学c语言的心路历程
- Unity3D学习笔记6——GPU实例化(1)
- 利用ELK分析Nginx日志生产实战(高清多图)
- 【经理人领导力突破训练营】经理人必修课,如何成为成功的经理人?
- iOS 真机调试 No profile for team xxxx matching xx found
- 关于2018后新款 Mac增加T2安全芯片造成无法U盘启动解决办法
- 笔记本高分屏字体模糊_高分屏字体模糊win10怎么办_Win10系统高分屏字体模糊解决方法...