java调用winrar解压文件[rar.bz2.zip.....]

package com.czp;

import java.io.File;
import java.util.Properties;

public class UnRarFile {

	public static void main(String[] args) {
		UnRarFile unrar = new UnRarFile();
		unrar.unRarFileCurDir(new File("d:/ftpd/pm/test/*.bz2"));
	}

	/**
	 * 解压文件
	 * 
	 * @param target
	 * @param oldFile
	 */
	public void unRarFile(File target, File oldFile) {
		try {
			if (isWindow()) {
				String path = target.getParentFile().getAbsolutePath();
				File tmp = target.getParentFile();
				if (path.charAt(path.length() - 1) != ((char) File.separatorChar)) {
					tmp = new File(path + File.separator);
					if (!tmp.exists())
						tmp.mkdirs();
				}
				String cmd2 = "C:\\Program Files\\WinRAR\\winrar.exe x -r -o+ -ibck -y "
						+ oldFile + " *.* " + tmp;
				Runtime rt = Runtime.getRuntime();
				Process pre = rt.exec(cmd2);
				if (0 != pre.waitFor()) {
					pre.destroy();
				}
				rt.runFinalization();
				System.out.println(cmd2);
			} else {
				System.out.println("can't get rar command abort");
			}
		} catch (Exception e) {
			System.out.println("解压发生异常");
		}
	}

	/**
	 * 解压到当前目录
	 * 
	 * @param filePath
	 */
	public void unRarFileCurDir(File filePath) {
		unRarFile(filePath, filePath);
	}

	/**
	 * 是否是window
	 * 
	 * @return
	 */
	public boolean isWindow() {
		Properties properties = System.getProperties();
		String os = properties.getProperty("os.name");
		if (os != null && os.contains("Windows"))
			return true;
		return false;
	}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值