java上传zip文件并解压读取_java上传压缩包解压_梓隽的博客-CSDN博客
添加依赖
<dependency>
<groupId>com.github.junrar</groupId>
<artifactId>junrar</artifactId>
<version>7.4.1</version>
</dependency>
<dependency>
<groupId>net.lingala</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.3</version>
</dependency>
@PostMapping(value = "/import", headers = "content-type=multipart/*")
public Result importSqlLite(@RequestParam("file") MultipartFile file) throws IOException {
String path = "D:/新建文件夹1/";
File file1 = new File(path);
if (!file1.exists()){
file1.mkdirs();
}
File newFile = new File(path + file.getOriginalFilename());
//通过CommonsMultipartFile的方法直接写文件(注意这个时候)
file.transferTo(newFile);
return Result.ok();
}
@PostMapping("chaRu1")
public Result chaRu1() {
//解压路径
Uncompress("D:\\新建文件夹1\\[121824]045西安研发部刘港【北京】离职交接审批流程2023年7月20日.zip");
return Result.ok();
}
public void Uncompress (String source) {
String dest = "D:\\新建文件夹2";
List<String> picPaths = new ArrayList<>();
try {
File zipFile = new File(source);
ZipFile zFile = new ZipFile(zipFile);// 首先创建ZipFile指向磁盘上的.zip文件
zFile.setFileNameCharset("UTF-8");
File destDir = new File(dest);// 解压目录
if (zFile.isEncrypted()) {
zFile.setPassword("6666"); // 设置密码
}
zFile.extractAll(dest); // 将文件抽出到解压目录(解压)
List<net.lingala.zip4j.model.FileHeader> headerList = zFile.getFileHeaders();
List<File> extractedFileList = new ArrayList<File>();
for (FileHeader fileHeader : headerList) {
if (!fileHeader.isDirectory()) {
extractedFileList.add(new File(destDir, fileHeader.getFileName()));
}
}
File[] extractedFiles = new File[extractedFileList.size()];
extractedFileList.toArray(extractedFiles);
for (File f : extractedFileList) {
System.out.println(f.getAbsolutePath() + "....");
}
} catch (ZipException e) {
}
}
会出现中文乱码,所以设置字符集为UTF-8