From d9f5753f5896ad64dec1b99249b95cc6f4319b7c Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 14 Aug 2021 16:55:19 +0100 Subject: [PATCH] Ensure parent directories exist when creating a diff. --- src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java index 17b67960..1952ddb0 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java @@ -127,6 +127,7 @@ public class ArbitraryDataDiff { }); } catch (IOException e) { + // TODO: throw exception? LOGGER.info("IOException when walking through file tree: {}", e.getMessage()); } } @@ -202,7 +203,14 @@ public class ArbitraryDataDiff { throw new IOException(String.format("File not found: %s", source.toString())); } + // Ensure parent folders exist in the destination Path dest = Paths.get(base.toString(), relativePath.toString()); + File file = new File(dest.toString()); + File parent = file.getParentFile(); + if (parent != null) { + parent.mkdirs(); + } + LOGGER.trace("Copying {} to {}", source, dest); Files.copy(source, dest, StandardCopyOption.REPLACE_EXISTING); }