智能仲裁后端服务

UnZipFileUtils.java 3.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.ruoyi.wisdomarbitrate.utils;
  2. import lombok.extern.slf4j.Slf4j;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.nio.charset.Charset;
  8. import java.util.ArrayList;
  9. import java.util.Enumeration;
  10. import java.util.List;
  11. import java.util.zip.ZipEntry;
  12. import java.util.zip.ZipFile;
  13. @Slf4j
  14. public class UnZipFileUtils {
  15. public static void main(String[] args) {
  16. File file = new File("D:\\home\\ruoyi\\仲裁委项目-测试单.zip");
  17. String targetPath = "D:\\home\\unzip\\";
  18. unZipFile(file,targetPath);
  19. }
  20. public static boolean unZipFile(File aboriginalFile, String targetPath) {
  21. if (!aboriginalFile.exists()) {
  22. log.error("此文件不存在:", aboriginalFile.getPath());
  23. return false;
  24. }
  25. try {
  26. ZipFile srcZipFile = new ZipFile(aboriginalFile, Charset.forName("GBK"));
  27. for (Enumeration enumeration = srcZipFile.entries(); enumeration.hasMoreElements(); ) {
  28. ZipEntry entryZip = (ZipEntry) enumeration.nextElement();
  29. //若是文件夹,就创建文件夹
  30. if (entryZip.isDirectory()) {
  31. String directPath = targetPath + File.separator + entryZip.getName();
  32. File directFile = new File(directPath);
  33. boolean makeDirs = directFile.mkdirs();
  34. System.out.println("创建文件夹是否成功:" + makeDirs);
  35. } else {
  36. //若是文件,就创建文件
  37. File sourceFile = new File(targetPath + File.separator + entryZip.getName());
  38. if (!sourceFile.getParentFile().exists()) {
  39. boolean mDirect = sourceFile.getParentFile().mkdirs();
  40. System.out.println("创建压缩文件时,创建父文件夹是否成功:" + mDirect);
  41. }
  42. boolean newUnZipFile = sourceFile.createNewFile();
  43. if (newUnZipFile) {
  44. // 将压缩文件内容写入到这个文件中
  45. try {
  46. InputStream is = srcZipFile.getInputStream(entryZip);
  47. FileOutputStream fos = new FileOutputStream(sourceFile);
  48. int len;
  49. byte[] buf = new byte[2048];
  50. while ((len = is.read(buf)) != -1) {
  51. fos.write(buf, 0, len);
  52. }
  53. } catch (Exception e) {
  54. log.error("解压失败", e);
  55. }
  56. }
  57. }
  58. }
  59. return true;
  60. } catch (IOException e) {
  61. log.error("解压失败", e);
  62. return false;
  63. }
  64. }
  65. public static void getFiles(File fileSource, List<File> allFiles) {
  66. if (!fileSource.exists()) {
  67. System.out.println("目录不存在");
  68. return;
  69. }
  70. File[] fileArray = fileSource.listFiles();
  71. if (fileArray != null && fileArray.length > 0) {
  72. for (File fileIter : fileArray) {
  73. if (fileIter.isDirectory()) {
  74. getFiles(fileIter, allFiles);
  75. } else {
  76. allFiles.add(fileIter);
  77. }
  78. }
  79. }
  80. }
  81. }