From a4fc24b20d685320e34c71913a20bcfc056ce484 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Mon, 17 Dec 2018 22:59:31 +0000
Subject: [PATCH] Handling of recreating files and directories works now fine (opens a file dialog with the restored items).
---
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java | 22 ++++++++++++++++++----
1 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
index c2bbbda..0c8bfbe 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -9,6 +9,7 @@
import de.micromata.borgbutler.json.JsonUtils;
import de.micromata.borgbutler.json.borg.*;
import de.micromata.borgbutler.utils.DateUtils;
+import de.micromata.borgbutler.utils.ReplaceUtils;
import lombok.Setter;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.exec.CommandLine;
@@ -20,6 +21,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.naming.Context;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
@@ -157,12 +159,24 @@
return content;
}
- public static Path extractFiles(BorgRepoConfig repoConfig, String archive, String path) throws IOException {
- Path tempDirWithPrefix = Files.createTempDirectory("borgbutler-extract-");
- Context context = new Context().setWorkingDir(tempDirWithPrefix.toFile()).setRepoConfig(repoConfig)
+ /**
+ * Stores the file in a subdirectory named with the repos display name.
+ * @param restoreHomeDir
+ * @param repoConfig
+ * @param archive
+ * @param path
+ * @return Used sub directory with the restored content.
+ * @throws IOException
+ */
+ public static File extractFiles(File restoreHomeDir, BorgRepoConfig repoConfig, String archive, String path) throws IOException {
+ File restoreDir = new File(restoreHomeDir, ReplaceUtils.encodeFilename(repoConfig.getDisplayName(), true));
+ if (!restoreDir.exists()) {
+ restoreDir.mkdirs();
+ }
+ Context context = new Context().setWorkingDir(restoreDir).setRepoConfig(repoConfig)
.setCommand("extract").setArchive(archive).setArgs(path);
execute(context);
- return tempDirWithPrefix;
+ return restoreDir;
}
private static String execute(Context context) {
--
Gitblit v1.10.0