Java调用系统解压_记一次Java利用cmd命令调用WinRAR压缩文件-压缩文件
前言
最近在和一个档案管理系统对接,需要把我方系统文件压缩成zip格式,通过ftp的方式upload到指定的服务器上,考虑到Java的平台无关性,一开始便使用Java自带的类库java.util.zip来实现文件的压缩,谁曾想传送过去的压缩文件对方系统解析出错。于是只能改用cmd命令调用WinRAR的方式来实现,敌方程序员完美的破坏了Java的可移植性!!
调用cmd命令
废话说了那么多,下面直接上菜:
/**
*
Description: 调用本地压缩工具进行压缩
* @param zipFilePath 文件压缩后的存放路径
* @param sourceFilePath 源文件路径
* @return
* @date 2019年2月26日
* @author 怪蜀黍
*/
public String compressFile(String zipFilePath, String sourceFilePath) {
File file = new File(sourceFilePath);
final String cmd = "D:\\Program Files\\WinRAR\\WinRAR.exe"+" a -ibck -ep1 "+zipFilePath+" ";
Process proc = null;
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; i
try {
proc = Runtime.getRuntime().exec(cmd+files[i]);
// waitFor将返回exitValue的值0表示正常结束
if (proc.waitFor() != 0)
return ;
} catch (Exception e) {
System.out.println("压缩失败!");
}
}
}
return "";
}
我这里WinRAR的安装路径为:D:\Program Files\WinRAR\WinRAR.exe,a表示添加文件到压缩文件,-ibck表示后台运行,-ep1表示排除基本目录。其他命令参数可自行百度。
根据实际需求,文件压缩后,点开压缩包要如下图的形式,所以我这里使用了一个for循环,将文件或文件夹一个个的压缩到压缩包里面。
压缩包
展望
个人水平有限,如有不妥望指正。解压也基本类似,查一查WinRAR的命令参数了解一下即可,此处不再复述。
Java调用系统解压_记一次Java利用cmd命令调用WinRAR压缩文件-压缩文件相关推荐
- java 获取系统的时区_【转】Java 获取操作系统时区
Java 可以通过 Timezone 获取时区,但是通过 Timezone 获取的时区是 JVM 初始化时保存的时区,并不是操作系统所设置的时区.当修改过操作系统的时区后,JVM 并不会同步更新.Ti ...
- java面试 系统调优_面试官:Java性能调优你会多少?一个问题就把我问的哑口无言,哭了!...
一.前言 什么是性能调优? 性能调优其实很好理解,就是优化硬件.操作系统.应用之间的一个充分的协作,最大化的发挥出硬件的极致性能,来应对高负载的业务需求. 为什么需要性能优化? 其实说到底就是两个原因 ...
- java 使用7z进行解压_java调用7zip解压压缩包的实例
前言 最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题. 7zip命 ...
- bandzip和360解压_压缩软件哪家强?
想来想去我还是推荐Total Commander,理由如下: 1.在TC中,可以将压缩包视为文件夹(该功能可关闭).这带来两种便利:①想看压缩包内容时双击,像进入某个文件夹一样查看,而不是在弹出的压缩 ...
- java rar_java如何解压rar文件
引入java包,输入代码: /** * @param rarFile rar文件路径 * @param savePath 要解压的路径 */ public static void Rar(String ...
- 利用FME PythonCaller调用7z解压压缩包
利用FME PythonCaller调用7z解压压缩包 一.概述 在一些项目中有时候需要对文件目录完整性进行检查,而需要检查的数据又是压缩包的形式.我们都知道FME可以直接读取压缩包里的文件,当通过F ...
- gzip 解压_简简单单_百度空间
gzip 解压_简简单单_百度空间 gzip 解压_简简单单_百度空间 问题: 入问题,问题答案立即呈现在您眼前! gzip格式rfc 1952 http://www.ietf.org/rfc/rfc ...
- (转载)Mac系统下利用ADB命令连接android手机并进行文件操作
Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报 分类: Androi ...
- Python快速实现 CMD 命令调用指南
Python快速实现 CMD 命令调用指南 在 Python 中,我们可以很方便地通过调用 CMD 命令来执行系统操作.本文将为您介绍如何使用 Python 调用 CMD 命令,并提供相关代码和详细描 ...
最新文章
- VC++ 查看C++代码的汇编代码列表
- php 彩蛋 flag,php4的彩蛋
- Windows server 2008系统各类版本的优缺点比较,Windows2008系统标准版 企业版 数据中心版 WEB版等...
- vspythonqt混合_PYQT5 vscode联合操作qtdesigner的方法
- MySQL笔记-MHA(Master High Availability)搭建
- java 人脸识别jar包_java版天网人脸识别系统,获取视频流人脸识识别推送服务器展示...
- bat循环导oracle,Oracle备份恢复与批处理文件实操
- 继承20161223
- 微软IE浏览器1月市场份额再创新低 跌至67.6%
- QTableview
- WINCE ROM 定制大教程
- ubuntu好用的截图软件flameshot和设置快捷方式截图
- ubuntu流量监控_ubuntu linux下测试实时网络网速流量监控的几种小工具命令方法
- HC32F460 浮点运算开启
- 老司机阿里巴巴为什么要带着这些YunOS硬件小伙伴一路向西?
- 非常实用的视频剪辑软件,它可以满足您进行视频制作的需要,使用剪映mac版能够轻松对视频进行各种编辑。
- XCode14 iOS16适配 pod签名
- 小几届的学弟问我,软件测试岗是选11k的华为还是20k的小公司,我直呼受不了,太凡尔赛了
- python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)
- FHQ大战Splay