在java中加密压缩到rar,解压rar

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 ";     
 
  /** 
   * 文件/文件夹压缩成RAR格式 
   * rarName 压缩后的压缩文件名(不包含后缀) 
   * fileName 需要压缩的文件名(必须包含路径) 
   * destDir 压缩后的压缩文件存放路径
        * password 加密
   */  
   public static void RARFile(String rarName, String fileName, String destDir, String password) {  
      rarCmd += "-hp"+password+" -ibck -r -k "+ destDir + rarName + ".rar " + fileName;
//-r 递归子目录
//-k 锁定(使压缩文件不能修改)
//rar命令参数,见日志
Process p = null; 
        int exitVal = 0;
      try {  
          Runtime rt = Runtime.getRuntime();  
           p = rt.exec(rarCmd); 
/*结束语句*/
            InputStream stdin = p.getInputStream();
           InputStreamReader isr = new InputStreamReader(stdin);
           BufferedReader br = new BufferedReader(isr);
           String line = null;
//            System.out.println("<OUTPUT>");
           while ( (line = br.readLine()) != null);
//                System.out.println(line);//显示控制台输出结果
//            System.out.println("</OUTPUT>");
           exitVal = p.waitFor();            
//            System.out.println("Process exitValue: "  + exitVal);
      }catch(Exception e) {  
          System.out.println(e.getMessage());        
      } finally{
      if(exitVal==0)
      p.destroy();//结束程序占用
      }
   }  
 
  /** 
   * 将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());     
      }  
   }
 public static void main(String[] args) {
 RarToFile r = new RarToFile();
 r.RARFile("testdir", "C:\\logs", "d:\\","abc");
 System.out.println("ok");
}
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值