java調用winrar解壓文件[rar.bz2.zip.....]

jopen 11年前發布 | 23K 次閱讀 解壓 Java開發

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

}</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!