您的位置:首页 > 编程语言 > Java开发

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

2012-02-03 14:23 381 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息