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;
	}
}

昵    称:
验证码: