java exe 解包_java解压rar 高效解压

java解压rar有的用cmd命令行调用winrar.exe,这其实是一个很不好的方法,主要理由如下:

1:会出现解压的页面

2:如果压缩包有错误,会弹出解压警告框。

其实有一个unrar.jar可以实现解压,但是网上很多的用法都是不对的,我这里参考了一些资料写了一个。

/**

* 根据原始rar路径,解压到指定文件夹下.

* @param srcRarPath 原始rar路径

* @param dstDirectoryPath 解压到的文件夹

*/

public static void unRarFile(String srcRarPath, String dstDirectoryPath) {

if (!srcRarPath.toLowerCase().endsWith(".rar")) {

System.out.println("非rar文件!");

return;

}

File dstDiretory = new File(dstDirectoryPath);

if (!dstDiretory.exists()) { //目标目录不存在时,创建该文件夹

dstDiretory.mkdirs();

}

Archive a = null;

try {

a = new Archive(new File(srcRarPath));

if (a != null) {

a.getMainHeader().print(); //打印文件信息.

FileHeader fh = a.nextFileHeader();

while (fh != null) {

if (fh.isDirectory()) { //文件夹

File fol = new File(dstDirectoryPath + File.separator + fh.getFileNameString());

fol.mkdirs();

} else { //文件

File out = new File(dstDirectoryPath + File.separator + fh.getFileNameString().trim());

System.out.println(out.getAbsolutePath());

try {//之所以这么写try,是因为万一这里面有了异常,不影响继续解压.

if (!out.exists()) {

if (!out.getParentFile().exists()) {//相对路径可能多级,可能需要创建父目录.

out.getParentFile().mkdirs();

}

out.createNewFile();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值