From 1b249de99e1b1feeaa87d3003f9475085c109fe2 Mon Sep 17 00:00:00 2001 From: johnniang Date: Tue, 9 Apr 2019 19:49:00 +0800 Subject: [PATCH] Complete copy folder from jar file --- .../halo/app/listener/StartedListener.java | 42 +++++++++++----- .../run/halo/app/service/ThemeService.java | 37 ++++++++++++++ .../app/service/impl/ThemeServiceImpl.java | 37 -------------- .../java/run/halo/app/utils/FileUtils.java | 49 +++++++++++++++++++ 4 files changed, 117 insertions(+), 48 deletions(-) create mode 100644 src/main/java/run/halo/app/utils/FileUtils.java diff --git a/src/main/java/run/halo/app/listener/StartedListener.java b/src/main/java/run/halo/app/listener/StartedListener.java index 08b4fbfbe..abd233f5d 100644 --- a/src/main/java/run/halo/app/listener/StartedListener.java +++ b/src/main/java/run/halo/app/listener/StartedListener.java @@ -1,6 +1,5 @@ package run.halo.app.listener; -import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.databind.ObjectMapper; import freemarker.template.TemplateModelException; @@ -20,10 +19,12 @@ import run.halo.app.model.support.HaloConst; import run.halo.app.service.OptionService; import run.halo.app.service.ThemeService; import run.halo.app.service.UserService; +import run.halo.app.utils.FileUtils; import run.halo.app.utils.HaloUtils; -import java.io.File; import java.io.IOException; +import java.net.URI; +import java.nio.file.*; import java.util.Collections; import java.util.List; import java.util.Map; @@ -158,21 +159,40 @@ public class StartedListener implements ApplicationListener() { + + private Path current; + + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + current = target.resolve(source.relativize(dir).toString()); + Files.createDirectories(current); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.copy(file, target.resolve(source.relativize(file).toString()), StandardCopyOption.REPLACE_EXISTING); + return FileVisitResult.CONTINUE; + } + }); + } +}