2024-04-04 05:10:44 | 我爱编程网
楼主试试这个代码~~
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格式的压缩包!");
}
}
}
首先把你的文件放入一个文件夹中,如MyPro
然后按下边的操作引入就OK!
打开eclipse——>左上角FIle——>import——>
然后Next——>Browse(在这里引入你的文件),记得选上下边那个框(copy。。。to workspace),完成!
我爱编程网(https://www.52biancheng.com)小编还为大家带来JAVA 程序中如何实现对RAR压缩包文件中文件格式的判断?的相关内容。
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
JAVA 程序中如何实现对RAR压缩包文件中文件格式的判断?
解析:
JAVA中使用java.util.zip.ZipOutputStream在对文件进行压缩时,将把每一个文件实体封装为java.util.zip.ZipEntry,反之,在使用java.util.zip.ZipInputStream在对文件进行解压缩时,每个文件的访问也是通过访问ZipEntry对象来操作的,可以通过ZipEntry对象的getName()来得到当初压缩时对该文件的命名(通常为该文件相对路径),当然得到了该文件命名自然就可以对文件格式进行判断了!
如何用PHP上传RAR压缩包同时解压到指定目录<?php header("content-type:text/html;charset=utf-8"); $path = getcwd();//获取当前系统目录 if($_POST['sub']) { $tname = $_FILES["ufile"]["tmp_name"]; $fname = $_FILES["ufile"]["n
php实现rar文件的读取和解压实现PHP对RAR文件的读取和解压,需遵循以下步骤:1.首先,从PECL的RAR页面下载DLL。根据系统情况选择对应版本的DLL。2.下载为ZIP包后,解压其中的php_rar.pdb和php_rar.dll到PHP安装目录的ext子目录。3.在php.ini文件中添加扩展引用声明:extension=php_rar.dll。4.对于使
求php压缩解压rar和zip类源码不用写,rar算法是有专利权的RAR压缩算法是RARLab的专利,其它软件要使用或自己实现RAR算法的实作,都是要向RARLab申请许可或交钱的zip算法php有自带的函数====>需求PHP4ThebundledPHP4versionrequires»ZZIPlib,byGuidoDraheim,version0.10.
linux运行java程序linux运行java怎么在linux中运行jar包?有以下几种方式:1、java-jarxxxxx.jar//当前ssh窗口被锁定,可按CTRL+C打断程序运行,或直接关闭窗口,程序退出2、java-jarxxxxx.jar//当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。3、nohupJava-jarxxxxxx.jar//意
linux运行java程序linux运行java怎么在linux中运行jar包?有以下几种方式:1、java-jarxxxxx.jar//当前ssh窗口被锁定,可按CTRL+C打断程序运行,或直接关闭窗口,程序退出2、java-jarxxxxx.jar//当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。3、nohupJava-jarxxxxxx.jar//意
在linux系统下编写编译和运行一个java程序步骤求解啊linux下和windows下基本一样的先装jdk,去官网下载rpm或者gz包安装,也可以yum在线安装open-jdk配置环境变量(在/etc/profile中配置,配置完成后source以下这个文件使之生效)用vi编写源文件命令行javac命令编译代码命令行java命令运行代码除了安装包从exe变成了r
如何在java程序中调用php文件 public String execPHP(String scriptName, String param) { StringBuilder output = new StringBuilder(); BufferedReader input = null; String phpPath = "D:/xampp/p
PHP的zip压缩工具扩展包学习PHP的Zip压缩工具扩展包的学习Zip在PHP中得到最大幅度功能支持,是通用常见的一种压缩格式。安装时,Zip扩展已经集成在PHP的安装包中,在Configure的时候可以直接加上--with-zip。如果没有在安装时加上该参数,我们也可以在源码包的ext/zip下找到源码,通过扩展安装的方式进行安装。创建一个压缩包是Zip的基本操作,通过实例化
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01
2024-09-10 08:50:00