六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 46|回复: 0

解压文件rar

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-1-15 02:45:41 | 显示全部楼层 |阅读模式
public static boolean decompressionRarFiles(String rarFileName, String extPlace) {boolean flag = false;Archive archive = null;File out = null;File file = null;File dir = null;FileOutputStream os = null;FileHeader fh = null;String path, dirPath = "";try {file = new File(rarFileName);archive = new Archive(file);} catch (RarException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();} finally {if (file != null) {file = null;}}if (archive != null) {try {fh = archive.nextFileHeader();while (fh != null) {path = (extPlace + fh.getFileNameString().trim()).replaceAll("\\\\", "/");int end = path.lastIndexOf("/");if (end != -1) {dirPath = path.substring(0, end);}try {dir = new File(dirPath);if (!dir.exists()) {dir.mkdirs();}} catch (RuntimeException e1) {e1.printStackTrace();} finally {if (dir != null) {dir = null;}}if (fh.isDirectory()) {fh = archive.nextFileHeader();continue;}out = new File(extPlace + fh.getFileNameString().trim());try {os = new FileOutputStream(out);archive.extractFile(fh, os);} catch (FileNotFoundException e) {e.printStackTrace();} catch (RarException e) {e.printStackTrace();} finally {if (os != null) {try {os.close();} catch (IOException e) {e.printStackTrace();}}if (out != null) {out = null;}}fh = archive.nextFileHeader();}} catch (RuntimeException e) {e.printStackTrace();} finally {fh = null;if (archive != null) {try {archive.close();} catch (IOException e) {e.printStackTrace();}}}flag = true;}return flag;}public static void main(String[] args) {decompressionRarFiles("d:/test/a.rar","d:/test/");} 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表