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