xiatiaohcx 发表于 2013-1-28 19:11:55

解压文件rar

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/");} 
页: [1]
查看完整版本: 解压文件rar