导航:首页 > 编程语言 > javaunrar

javaunrar

发布时间:2024-11-03 20:16:55

1. java unrar 中crcerror的问题

请问您是抄要使用unrar这个软件,通过java来调用并解压文件是么?
您做的是windows平台的开发吧。请问具体的rar文件的文件类型是什么呢?很有可能您是解压了不同格式的rar文件比如是不是有可能winrar与unrar的压缩算法不同,从而导致unrar解压出现错误呢?您可以尝试解压一个用unrar压缩的内容为dll 或者 exe的文件试试

2. 在LINUX下 用JAVA如何解压rar文件

楼主试试这个代码~~

package decompress;

import java.io.File;
import java.io.FileOutputStream;

import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand;

import de.innosystec.unrar.Archive;
import de.innosystec.unrar.rarfile.FileHeader;

public class DeCompressUtil {
/**
* 解压zip格式压缩包
* 对应的是ant.jar
*/
private static void unzip(String sourceZip,String destDir) throws Exception{
try{
Project p = new Project();
Expand e = new Expand();
e.setProject(p);
e.setSrc(new File(sourceZip));
e.setOverwrite(false);
e.setDest(new File(destDir));
/*
ant下的zip工具默认压缩编码为UTF-8编码,
而winRAR软件压缩是用的windows默认的GBK或者GB2312编码
所以解压缩时要制定编码格式
*/
e.setEncoding("gbk");
e.execute();
}catch(Exception e){
throw e;
}
}
/**
* 解压rar格式压缩包。
* 对应的是java-unrar-0.3.jar,但是java-unrar-0.3.jar又会用到commons-logging-1.1.1.jar
*/
private static void unrar(String sourceRar,String destDir) throws Exception{
Archive a = null;
FileOutputStream fos = null;
try{
a = new Archive(new File(sourceRar));
FileHeader fh = a.nextFileHeader();
while(fh!=null){
if(!fh.isDirectory()){
//1 根据不同的操作系统拿到相应的 destDirName 和 destFileName
String compressFileName = fh.getFileNameString().trim();
String destFileName = "";
String destDirName = "";
//非windows系统
if(File.separator.equals("/")){
destFileName = destDir + compressFileName.replaceAll("\\\\", "/");
destDirName = destFileName.substring(0, destFileName.lastIndexOf("/"));
//windows系统
}else{
destFileName = destDir + compressFileName.replaceAll("/", "\\\\");
destDirName = destFileName.substring(0, destFileName.lastIndexOf("\\"));
}
//2创建文件夹
File dir = new File(destDirName);
if(!dir.exists()||!dir.isDirectory()){
dir.mkdirs();
}
//3解压缩文件
fos = new FileOutputStream(new File(destFileName));
a.extractFile(fh, fos);
fos.close();
fos = null;
}
fh = a.nextFileHeader();
}
a.close();
a = null;
}catch(Exception e){
throw e;
}finally{
if(fos!=null){
try{fos.close();fos=null;}catch(Exception e){e.printStackTrace();}
}
if(a!=null){
try{a.close();a=null;}catch(Exception e){e.printStackTrace();}
}
}
}
/**
* 解压缩
*/
public static void deCompress(String sourceFile,String destDir) throws Exception{
//保证文件夹路径最后是"/"或者"\"
char lastChar = destDir.charAt(destDir.length()-1);
if(lastChar!='/'&&lastChar!='\\'){
destDir += File.separator;
}
//根据类型,进行相应的解压缩
String type = sourceFile.substring(sourceFile.lastIndexOf(".")+1);
if(type.equals("zip")){
DeCompressUtil.unzip(sourceFile, destDir);
}else if(type.equals("rar")){
DeCompressUtil.unrar(sourceFile, destDir);
}else{
throw new Exception("只支持zip和rar格式的压缩包!");
}
}
}

阅读全文

与javaunrar相关的资料

热点内容
怎么登录移动屏蔽的网站 浏览:849
电商运营每天都看到什么数据 浏览:191
iphone熊猫看书目录 浏览:754
TPL丨NK14A4网络密码是多 浏览:65
u盘启动后怎么查看桌面的文件 浏览:80
哈罗单车app和支付宝包月哪个便宜 浏览:635
织梦cms网站模板 浏览:410
有没有什么免费看国漫的网站 浏览:213
如何用机算计编程 浏览:401
大学计算机程序设计题 浏览:521
win10安全模式也蓝屏 浏览:548
满分率体现数据的什么状况 浏览:870
数控混合编程应注意什么 浏览:949
文件夹色纸 浏览:445
央视影音532版本 浏览:358
qt串口自动扫描代码 浏览:255
iphone4s用wifi很慢 浏览:240
androidsdk文件夹有哪些 浏览:850
三星移动网络怎么设置 浏览:60
vr网站建设什么牌子好 浏览:775

友情链接