上犹电脑信息网我们一直在努力
您的位置:上犹电脑信息网 > 文件问题 > 记一次Java利用cmd命令调用WinRAR压缩文件-压缩文件

记一次Java利用cmd命令调用WinRAR压缩文件-压缩文件

作者:上犹日期:

返回目录:文件问题

前言

最近在和一个档案管理系统对接,需要把我方系统文件压缩成zip格式,通过ftp的方式upload到指定的服务器上,考虑到Java的平台无关性,一开始便使用Java自带的类库java.util.zip来实现文件的压缩,谁曾想传送过去的压缩文件对方系统解析出错。于是只能改用cmd命令调用WinRAR的方式来实现,敌方程序员完美的破坏了Java的可移植性!!

调用cmd命令

废话说了那么多,下面直接上菜:

/**

* <p>Description: 调用本地压缩工具进行压缩</p>

* @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<files.lengt ; 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循环,将文件或文件夹一个个的压缩到压缩包里面。

记一次Java利用cmd命令调用WinRAR压缩文件

压缩包

展望

个人水平有限,如有不妥望指正。解压也基本类似,查一查WinRAR的命令参数了解一下即可,此处不再复述。

相关阅读

  • 说说JavaScript的cookie与存储-cookies设置

  • 上犹设置问题
  • cookies设置,比如会员登录,下次回访网站时无须登录了;或者购物车,过几天发现购物车里还有之前的商品列表。一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也
  • Java 变量-java变量设置

  • 上犹设置问题
  • java变量设置,Java变量类型在Java中,必须先声明所有变量,然后才能使用它们。变量声明的基本形式如下所示:typeidentifier[=value][,identifier[=value]…
关键词不能为空
极力推荐

电脑蓝屏_电脑怎么了_win7问题_win10问题_设置问题_文件问题_上犹电脑信息网

关于我们