1、前言
解压zip相对简单,rar解压目前不支持版本5.0及以上,用户使用的软件版本小于5.0才能正常解压
2、pom
| |
| <dependency> |
| <groupId>com.github.junrar</groupId> |
| <artifactId>junrar</artifactId> |
| <version>7.5.3</version> |
| </dependency> |
原理
| import com.github.junrar.Archive; |
| import com.github.junrar.rarfile.FileHeader; |
| |
| import java.io.File; |
| import java.io.FileInputStream; |
| import java.nio.charset.Charset; |
| import java.util.List; |
| import java.util.zip.ZipEntry; |
| import java.util.zip.ZipInputStream; |
| |
| public class ZIPRARUtil { |
| public static boolean zipHasDcmFile(File file) { |
| ZipInputStream zin = null; |
| FileInputStream fis = null; |
| try { |
| Charset gbk = Charset.forName("GBK"); |
| fis = new FileInputStream(file); |
| zin = new ZipInputStream(fis, gbk); |
| ZipEntry ze = null; |
| while ((ze = zin.getNextEntry()) != null) { |
| |
| |
| if (!ze.isDirectory() && ze.toString().endsWith(".dcm")) { |
| return true; |
| } |
| } |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } finally { |
| try { |
| if (zin != null) { |
| zin.closeEntry(); |
| zin.close(); |
| } |
| if (fis != null) |
| fis.close(); |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| } |
| return false; |
| } |
| |
| public static boolean rarHasDcmFile(File file) { |
| FileInputStream fis = null; |
| Archive archive = null; |
| try { |
| fis = new FileInputStream(file); |
| archive = new Archive(fis); |
| List<FileHeader> fileHeaderList = archive.getFileHeaders(); |
| for (FileHeader header : fileHeaderList) { |
| |
| if (!header.isDirectory() && header.getFileNameString().endsWith(".dcm")) { |
| return true; |
| } |
| } |
| } catch (Exception e) { |
| System.out.println(e.getMessage()); |
| } finally { |
| try { |
| if (fis != null) { |
| fis.close(); |
| } |
| if (archive != null) { |
| fis.close(); |
| } |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| } |
| return false; |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2020-08-11 【springboot__拦截器】Interceptor