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");
}
}
java解压带密码的zip java解压加密rar
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux压缩和解压文件
Linux压缩和解压文件
压缩文件 7z linux 解压