package com.whyc.service; import com.whyc.dto.FileDirPath; import com.whyc.dto.Response; import com.whyc.pojo.FileMessage; import com.whyc.util.FileUtil; import com.whyc.util.ZipAndRarUtil; import org.apache.commons.compress.archivers.ArchiveException; import org.springframework.stereotype.Service; import java.io.IOException; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @Service public class ZipAndRarService { //产品查看原来压缩包中文件信息(文件目录和时间) public Response getzipAndRarInfo(String fileUrl) { String fileDirName = FileDirPath.getFileDirName(); List list=new ArrayList<>(); try { if(fileUrl.contains("zip")){ //list=ZipAndRarUtil.getZipFileList(fileDirName+fileUrl); list=ZipAndRarUtil.unZipFiles(fileDirName+fileUrl); }else if(fileUrl.contains("rar")){ list=ZipAndRarUtil.getRarList(fileDirName+fileUrl); } } catch (IOException e) { e.printStackTrace(); } return new Response().setII(1,list!=null,list,"压缩文件信息"); } public Response decompress(String compressedFileUrl) throws ArchiveException, IOException, InterruptedException { String fileSuffix = (compressedFileUrl.substring(compressedFileUrl.lastIndexOf(".")+1)); List resList = new LinkedList<>(); if(fileSuffix.equals("zip")||fileSuffix.equals("rar")) { List decompressList = FileUtil.decompress(compressedFileUrl); for (String decompress : decompressList) { resList.add(decompress.substring(decompress.indexOf("doc_file"))); } }else{ return new Response().set(1,false,fileSuffix+"类型压缩包暂不支持解压"); } return new Response().setII(1,true, resList,null); } }