前言

最近在和一个档案管理系统对接,需要把我方系统文件压缩成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压缩文件-压缩文件相关推荐

  1. java 获取系统的时区_【转】Java 获取操作系统时区

    Java 可以通过 Timezone 获取时区,但是通过 Timezone 获取的时区是 JVM 初始化时保存的时区,并不是操作系统所设置的时区.当修改过操作系统的时区后,JVM 并不会同步更新.Ti ...

  2. java面试 系统调优_面试官:Java性能调优你会多少?一个问题就把我问的哑口无言,哭了!...

    一.前言 什么是性能调优? 性能调优其实很好理解,就是优化硬件.操作系统.应用之间的一个充分的协作,最大化的发挥出硬件的极致性能,来应对高负载的业务需求. 为什么需要性能优化? 其实说到底就是两个原因 ...

  3. java 使用7z进行解压_java调用7zip解压压缩包的实例

    前言 最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题. 7zip命 ...

  4. bandzip和360解压_压缩软件哪家强?

    想来想去我还是推荐Total Commander,理由如下: 1.在TC中,可以将压缩包视为文件夹(该功能可关闭).这带来两种便利:①想看压缩包内容时双击,像进入某个文件夹一样查看,而不是在弹出的压缩 ...

  5. java rar_java如何解压rar文件

    引入java包,输入代码: /** * @param rarFile rar文件路径 * @param savePath 要解压的路径 */ public static void Rar(String ...

  6. 利用FME PythonCaller调用7z解压压缩包

    利用FME PythonCaller调用7z解压压缩包 一.概述 在一些项目中有时候需要对文件目录完整性进行检查,而需要检查的数据又是压缩包的形式.我们都知道FME可以直接读取压缩包里的文件,当通过F ...

  7. gzip 解压_简简单单_百度空间

    gzip 解压_简简单单_百度空间 gzip 解压_简简单单_百度空间 问题: 入问题,问题答案立即呈现在您眼前! gzip格式rfc 1952 http://www.ietf.org/rfc/rfc ...

  8. (转载)Mac系统下利用ADB命令连接android手机并进行文件操作

    Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报  分类: Androi ...

  9. Python快速实现 CMD 命令调用指南

    Python快速实现 CMD 命令调用指南 在 Python 中,我们可以很方便地通过调用 CMD 命令来执行系统操作.本文将为您介绍如何使用 Python 调用 CMD 命令,并提供相关代码和详细描 ...

最新文章

  1. VC++ 查看C++代码的汇编代码列表
  2. php 彩蛋 flag,php4的彩蛋
  3. Windows server 2008系统各类版本的优缺点比较,Windows2008系统标准版 企业版 数据中心版 WEB版等...
  4. vspythonqt混合_PYQT5 vscode联合操作qtdesigner的方法
  5. MySQL笔记-MHA(Master High Availability)搭建
  6. java 人脸识别jar包_java版天网人脸识别系统,获取视频流人脸识识别推送服务器展示...
  7. bat循环导oracle,Oracle备份恢复与批处理文件实操
  8. 继承20161223
  9. 微软IE浏览器1月市场份额再创新低 跌至67.6%
  10. QTableview
  11. WINCE ROM 定制大教程
  12. ubuntu好用的截图软件flameshot和设置快捷方式截图
  13. ubuntu流量监控_ubuntu linux下测试实时网络网速流量监控的几种小工具命令方法
  14. HC32F460 浮点运算开启
  15. 老司机阿里巴巴为什么要带着这些YunOS硬件小伙伴一路向西?
  16. 非常实用的视频剪辑软件,它可以满足您进行视频制作的需要,使用剪映mac版能够轻松对视频进行各种编辑。
  17. XCode14 iOS16适配 pod签名
  18. 小几届的学弟问我,软件测试岗是选11k的华为还是20k的小公司,我直呼受不了,太凡尔赛了
  19. python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)
  20. FHQ大战Splay

热门文章

  1. open-dataset开源数据集
  2. 2022-8-011 第七小组 学习日记 (day35)网络通信
  3. python最适合做什么生意赚钱投资小_开什么店最赚钱投资小?
  4. 2、叉叉助手逆向分析(上)
  5. java多选_java单选换多选
  6. AI CITY : 中国首个世界级人工智能城市规划真正落地 | 百万人学AI评选
  7. ios 图片加载内存尺寸_iOS加载超清大图内存暴涨问题解决
  8. 期货网格交策(源码)
  9. 虚拟化与hypervisor
  10. JCMsuite应用:多核光子晶体光纤