whycxzp
2024-01-03 66db1d15cf5d4b51a346a42b66f0505bd7f31ce0
src/main/java/com/whyc/service/ZipAndRarService.java
@@ -1,14 +1,17 @@
package com.whyc.service;
import com.github.junrar.exception.RarException;
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.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@Service
@@ -21,7 +24,8 @@
        List<FileMessage> list=new ArrayList<>();
        try {
            if(fileUrl.contains("zip")){
                list=ZipAndRarUtil.getZipFileList(fileDirName+fileUrl);
                //list=ZipAndRarUtil.getZipFileList(fileDirName+fileUrl);
                list=ZipAndRarUtil.unZipFiles(fileDirName+fileUrl);
            }else if(fileUrl.contains("rar")){
                list=ZipAndRarUtil.getRarList(fileDirName+fileUrl);
            }
@@ -30,4 +34,20 @@
        }
        return new Response().setII(1,list!=null,list,"压缩文件信息");
    }
    public Response decompress(String compressedFileUrl) throws ArchiveException, IOException, RarException {
        String fileSuffix = (compressedFileUrl.substring(compressedFileUrl.lastIndexOf(".")+1));
        List<String> resList = new LinkedList<>();
        if(fileSuffix.equals("zip")||fileSuffix.equals("rar")) {
            List<String> 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);
    }
}