| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package com.ruoyi.wisdomarbitrate.utils;
-
- import lombok.extern.slf4j.Slf4j;
-
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.nio.charset.Charset;
- import java.util.ArrayList;
- import java.util.Enumeration;
- import java.util.List;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipFile;
-
- @Slf4j
- public class UnZipFileUtils {
-
- public static void main(String[] args) {
- File file = new File("D:\\home\\ruoyi\\仲裁委项目-测试单.zip");
- String targetPath = "D:\\home\\unzip\\";
- unZipFile(file,targetPath);
- }
-
- public static boolean unZipFile(File aboriginalFile, String targetPath) {
- if (!aboriginalFile.exists()) {
- log.error("此文件不存在:", aboriginalFile.getPath());
- return false;
- }
- try {
- ZipFile srcZipFile = new ZipFile(aboriginalFile, Charset.forName("GBK"));
- for (Enumeration enumeration = srcZipFile.entries(); enumeration.hasMoreElements(); ) {
- ZipEntry entryZip = (ZipEntry) enumeration.nextElement();
- //若是文件夹,就创建文件夹
- if (entryZip.isDirectory()) {
- String directPath = targetPath + File.separator + entryZip.getName();
- File directFile = new File(directPath);
- boolean makeDirs = directFile.mkdirs();
- System.out.println("创建文件夹是否成功:" + makeDirs);
- } else {
- //若是文件,就创建文件
- File sourceFile = new File(targetPath + File.separator + entryZip.getName());
- if (!sourceFile.getParentFile().exists()) {
- boolean mDirect = sourceFile.getParentFile().mkdirs();
- System.out.println("创建压缩文件时,创建父文件夹是否成功:" + mDirect);
- }
- boolean newUnZipFile = sourceFile.createNewFile();
- if (newUnZipFile) {
- // 将压缩文件内容写入到这个文件中
- try {
- InputStream is = srcZipFile.getInputStream(entryZip);
- FileOutputStream fos = new FileOutputStream(sourceFile);
- int len;
- byte[] buf = new byte[2048];
- while ((len = is.read(buf)) != -1) {
- fos.write(buf, 0, len);
- }
- } catch (Exception e) {
- log.error("解压失败", e);
- }
- }
- }
- }
- return true;
-
- } catch (IOException e) {
- log.error("解压失败", e);
- return false;
- }
-
- }
-
-
- public static void getFiles(File fileSource, List<File> allFiles) {
- if (!fileSource.exists()) {
- System.out.println("目录不存在");
- return;
- }
- File[] fileArray = fileSource.listFiles();
- if (fileArray != null && fileArray.length > 0) {
- for (File fileIter : fileArray) {
- if (fileIter.isDirectory()) {
- getFiles(fileIter, allFiles);
- } else {
- allFiles.add(fileIter);
- }
-
- }
-
- }
- }
-
-
- }
|