X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2FFsUtils.java;h=cd61b56198fc2428fcf96ce02be5bd6656497f34;hb=3c1cdc594d954520b14646102b366290bdad58c7;hp=23839db74c3f93c8c2f82a740089c39499b756d8;hpb=f3ea14abccc33b1c3326417a87c91145be776c72;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/util/FsUtils.java b/org.argeo.util/src/org/argeo/util/FsUtils.java index 23839db74..cd61b5619 100644 --- a/org.argeo.util/src/org/argeo/util/FsUtils.java +++ b/org.argeo.util/src/org/argeo/util/FsUtils.java @@ -10,10 +10,7 @@ import java.nio.file.attribute.BasicFileAttributes; /** Utilities around the standard Java file abstractions. */ public class FsUtils { - /** - * Deletes this path, recursively if needed. Does nothing if the path does not - * exist. - */ + /** Deletes this path, recursively if needed. */ public static void copyDirectory(Path source, Path target) { if (!Files.exists(source) || !Files.isDirectory(source)) throw new IllegalArgumentException(source + " is not a directory"); @@ -22,13 +19,13 @@ public class FsUtils { try { Files.createDirectories(target); Files.walkFileTree(source, new SimpleFileVisitor() { + @Override - public FileVisitResult postVisitDirectory(Path directory, IOException e) throws IOException { - if (e != null) - throw e; + public FileVisitResult preVisitDirectory(Path directory, BasicFileAttributes attrs) throws IOException { Path relativePath = source.relativize(directory); Path targetDirectory = target.resolve(relativePath); - Files.createDirectory(targetDirectory); + if (!Files.exists(targetDirectory)) + Files.createDirectory(targetDirectory); return FileVisitResult.CONTINUE; }