首先导入jar包ant 这边以1.7.0做测试
<!--zip-->
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
</dependency>
package com.ruoyi.common.utils;
import com.github.junrar.Archive;
import com.github.junrar.rarfile.FileHeader;
import com.ruoyi.common.config.Global;
import com.ruoyi.common.exception.BusinessException;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.*;
public class FileUtils {
public static String unZipFiles(MultipartFile mfile)throws Exception {
String filePath = Global.getUploadPath();
String dstDir = filePath+"/"+System.currentTimeMillis();
File dstDiretory = new File(dstDir);
if(!dstDiretory.exists()){
dstDiretory.mkdirs();
}
InputStream inputStream = mfile.getInputStream();
File zipFile = new File(mfile.getOriginalFilename());
org.apache.commons.io.FileUtils.copyInputStreamToFile(inputStream,zipFile);
try {
ZipFile zip = new ZipFile(zipFile,"gbk");
for(Enumeration enumeration = zip.getEntries(); enumeration.hasMoreElements();){
ZipEntry entry = (ZipEntry)enumeration.nextElement();
String zipEntryName = entry.getName();
String path = (dstDir + File.separator + zipEntryName).replace("/", File.separator);
if (entry.isDirectory()){
File dir = new File(path);
if (!dir.exists()){
dir.mkdirs();
}
}else {
int lastIndexOf = path.lastIndexOf("\\");
File dir = new File(path.substring(0,lastIndexOf));
if (!dir.exists()){
dir.mkdirs();
}
InputStream in = zip.getInputStream(entry);
OutputStream out = new FileOutputStream(path);
byte[] buf1 = new byte[1024];
int len;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
in.close();
out.close();
}
}
zip.close();
String property = System.getProperty("user.dir");
String delPath = property+"\\"+ zipFile.getName();
System.out.println("delPath"+delPath);
deleteFile(delPath);
return dstDir;
}catch (Exception e){
throw new BusinessException("解压文件失败");
}
}
public static boolean deleteFile(String filePath)
{
boolean flag = false;
File file = new File(filePath);
if (file.isFile() && file.exists())
{
file.delete();
flag = true;
}
return flag;
}
}