做邮件分析的时候,因为前台上传的是邮件的压缩包,在后台处理的时候需要先对压缩包进行解压缩,然后再对邮件进行提取操作。
因为压缩包的扩展名名字可是rar、7z、zip。所以需要分情况进行解压缩。而且压缩包里面可能还有压缩包,需要递归解压缩。
对于zip文件当时用的是zip4j这个jar包,rar、7z文件用的是zip4j这个jar包。maven导入外部jar包的配置文件如下片段:
<dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId><version>1.3.2</version></dependency><dependency><groupId>net.sf.sevenzipjbinding</groupId><artifactId>sevenzipjbinding-all-platforms</artifactId><version>9.20-2.00beta</version></dependency>
对于rar、7z格式文件解压缩的函数如下:
public void rar7zdecompress(String path,String destination) {String filter = null;
try {
new SevenExtract(path, destination, false, filter).extract();} catch (SevenExtract.ExtractionException e) {
e.printStackTrace();