From d239025804025875f23cda0954d12e29591ada68 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 07 Jul 2022 20:14:11 +0800
Subject: [PATCH] ifx

---
 src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 102 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java b/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
index 005a65c..32d768d 100644
--- a/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
+++ b/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
@@ -1,7 +1,104 @@
-package com.xcong.farmer.cms.common.utils;/**
-*
-* @author wzy
-* @date 2022-07-04
-**/
+package com.xcong.farmer.cms.common.utils;
+
+import java.io.*;
+import java.util.Enumeration;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+import java.util.zip.ZipInputStream;
+
+/**
+ * @author wzy
+ * @date 2022-07-04
+ **/
 public class FileUtils {
+
+    public static String path(String path) {
+        if (!path.endsWith("/")) {
+            return path + "/";
+        }
+
+        return path;
+    }
+
+    public static String path(String path, String fileName) {
+        File file = new File(path);
+        if (!file.isDirectory()){
+            return "";
+        }
+
+        String dir = path(path);
+        return dir + fileName;
+    }
+
+    public static void zipUpload(String zipPath, String templateDir) throws IOException {
+        FileInputStream fis = new FileInputStream(zipPath);
+        ZipInputStream zipIs = new ZipInputStream(fis);
+
+        ZipEntry ze = null;
+        try {
+            while ((ze = zipIs.getNextEntry()) != null) {
+                File zfile = new File(path(templateDir, ze.getName()));
+                if (ze.isDirectory()) {
+                    if (!zfile.exists()) {
+                        zfile.mkdirs();
+                    }
+                    zipIs.closeEntry();
+                } else {
+                    byte[] data = new byte[1024];
+                    FileOutputStream fos = new FileOutputStream(zfile);
+                    int i = 0;
+
+                    while ((i = zipIs.read(data)) != -1) {
+                        fos.write(data, 0, i);
+                    }
+                    zipIs.closeEntry();
+                    fos.close();
+                }
+            }
+
+            fis.close();
+            zipIs.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    public static void upload(File file, String dir) {
+        if (file.isDirectory()) {
+            File[] files = file.listFiles();
+            if (files == null) {
+                return;
+            }
+
+            for (File dirFile : files) {
+                upload(dirFile, path(dir, dirFile.getName()));
+            }
+        } else {
+            outputFile(file, dir);
+        }
+    }
+
+    public static void outputFile(File file, String outputDir) {
+        try {
+            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
+
+            int count;
+            int buffer = 1024;
+            byte[] dataByte = new byte[buffer];
+
+            FileOutputStream out = new FileOutputStream(path(outputDir, file.getName()));
+
+            BufferedOutputStream bos = new BufferedOutputStream(out, buffer);
+            while((count = bis.read(dataByte, 0, buffer)) != -1) {
+                bos.write(dataByte, 0 ,count);
+            }
+
+            bos.flush();
+            bos.close();
+            bis.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.9.1