在百度上找的一段解压缩rar文件的代码,如何判断压缩包已经解压完成呢?
解压完成后我还须要执行另外一些代码,比如我要获得解压出来的文件的文件名,调用这个方法后直接调用获得文件名的方法是获得不了的,因为压缩包中的文件还没解压出来当然就获得不了了。
如何才能在解压完成后,在执行其他方法呢?
- Java code
/** * 将1个RAR文件解压 * rarFileName 需要解压的RAR文件(必须包含路径信息以及后缀) * destDir 解压后的文件放置目录 */ public static void unRARFile(String rarFileName, String destDir) { if (!rarFileName.toLowerCase().endsWith(".rar")) { System.out.println("非rar文件!"); return; } unrarCmd +=" "+ rarFileName + " " + destDir; try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec(unrarCmd); } catch (Exception e) { System.out.println("e.getMessage()="+e.getMessage()); } }
------解决方案--------------------
你的方法调用结束了,就是完成了。如果没有压缩完成,程序会一直组塞在这个方法上的:unRARFile
------解决方案--------------------
给unRARFile()方法加个返回值, 懂?
------解决方案--------------------
Process对象有个waitFor方法. 会使你当前进程暂停.
p.waitFor();
但是刚才在本机上用rar.exe测试的时候一直不停止了. 你可以在你的代码中加入p.waitFor()然后看看.
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
http://topic.csdn.net/u/20090216/23/f4df4a38-c72f-492e-997e-794c46b1c39e.html
这里有,
接分