`
and4walker
  • 浏览: 557329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA实现压缩/解压缩RAR文件

    博客分类:
  • JAVA
阅读更多
public class RarToFile {
   /*
    * cmd 压缩与解压缩命令
    */
    private static String rarCmd = "C:\\Program Files\\WinRAR\\Rar.exe a "; 
    private static String unrarCmd = "C:\\Program Files\\WinRAR\\UnRar x ";   

   /**
    * 将1个文件压缩成RAR格式
    * rarName 压缩后的压缩文件名(不包含后缀)
    * fileName 需要压缩的文件名(必须包含路径)
    * destDir 压缩后的压缩文件存放路径
    */
    public static void RARFile(String rarName, String fileName, String destDir) {
       rarCmd += destDir + rarName + ".rar " + fileName;
       try {
           Runtime rt = Runtime.getRuntime();
           Process p = rt.exec(rarCmd);
       }catch(Exception e) {
    	   System.out.println(e.getMessage());      
       }
    }

   /**
    * 将1个RAR文件解压
    * rarFileName 需要解压的RAR文件(必须包含路径信息以及后缀)
    * destDir 解压后的文件放置目录
    */
    public static void unRARFile(String rarFileName, String destDir) {
       unrarCmd += rarFileName + " " + destDir;
       try {
           Runtime rt = Runtime.getRuntime();
           Process p = rt.exec(unrarCmd); 
       } catch (Exception e) {
    	   System.out.println(e.getMessage());   
       }
    }

}

分享到:
评论
5 楼 huzhenyu 2010-04-02  
northenwolf 写道
我弄下来,但是有问题!
调用了解压后,解压的线程一直在任务管理器里面,却一直没解压完,也不知道多长时间能解压完》我做的模块是要解压后马上要读解压出的文件的,而现在是执行了解压,却不知道什么时候解压完,后面的了一直没办法做呀,大哥啊!
看到后回我northenwolf1@126.com

起一线程,让这段时间在线程里做掉。
4 楼 careprad 2008-12-24  
压缩的只有这个办法,解压缩的如果是windows desktop可以看看
http://sourceforge.net/projects/java-unrar
3 楼 Jekey 2008-12-11  
这样就可以了
String unrar = (String) Common.loadMap().get("rarpath") + " x "
				+ sZipPathFile + " " + sDestPath;
		try {
			Runtime rt = Runtime.getRuntime();
			Process process = rt.exec(unrar);
			BufferedReader br = new BufferedReader(new InputStreamReader(
					process.getInputStream()));
			BufferedReader br1 = new BufferedReader(new InputStreamReader(
					process.getErrorStream()));
			// String ss;
			while ((br.readLine()) != null || br1.readLine() != null)
				;
			// System.out.println(ss);
			process.waitFor();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
2 楼 northenwolf 2007-12-29  
我弄下来,但是有问题!
调用了解压后,解压的线程一直在任务管理器里面,却一直没解压完,也不知道多长时间能解压完》我做的模块是要解压后马上要读解压出的文件的,而现在是执行了解压,却不知道什么时候解压完,后面的了一直没办法做呀,大哥啊!
看到后回我northenwolf1@126.com
1 楼 hyl1234 2007-08-14  
谢谢!不知道有没有支持RAR格式的类库?

相关推荐

Global site tag (gtag.js) - Google Analytics