This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git


The following commit(s) were added to refs/heads/master by this push:
     new 154cb76  [IO-632] Add PathUtils for operations on NIO Path.
154cb76 is described below

commit 154cb7648ffde863b2548eba10b330c51a103c6a
Author: Gary Gregory <gardgreg...@gmail.com>
AuthorDate: Sun Oct 13 18:10:54 2019 -0400

    [IO-632] Add PathUtils for operations on NIO Path.
    
    Refactor to add PathUtils.copyDirectory(Path, Path, CopyOption...)
---
 .../commons/io/file/CleaningPathVisitor.java       |   8 +-
 .../commons/io/file/CopyDirectoryVisitor.java      |  75 +++++++++++++++
 .../commons/io/file/CountingPathVisitor.java       |  10 +-
 .../commons/io/file/DeletingPathVisitor.java       |   3 +-
 .../java/org/apache/commons/io/file/PathUtils.java |  19 +++-
 .../commons/io/file/CleaningPathVisitorTest.java   |  12 +--
 .../commons/io/file/CopyDirectoryVisitorTest.java  | 104 +++++++++++++++++++++
 .../apache/commons/io/file/CounterAssertions.java  |  20 ++--
 .../org/apache/commons/io/file/CountersTest.java   |   2 +-
 .../commons/io/file/DeletingPathVisitorTest.java   |  12 +--
 .../io/file/PathUtilsCleanDirectoryTest.java       |   9 +-
 .../io/file/PathUtilsDeleteDirectoryTest.java      |   9 +-
 12 files changed, 233 insertions(+), 50 deletions(-)

diff --git a/src/main/java/org/apache/commons/io/file/CleaningPathVisitor.java 
b/src/main/java/org/apache/commons/io/file/CleaningPathVisitor.java
index 485773f..12c8406 100644
--- a/src/main/java/org/apache/commons/io/file/CleaningPathVisitor.java
+++ b/src/main/java/org/apache/commons/io/file/CleaningPathVisitor.java
@@ -77,17 +77,17 @@ public class CleaningPathVisitor extends 
CountingPathVisitor {
     }
 
     @Override
-    public FileVisitResult preVisitDirectory(final Path dir, final 
BasicFileAttributes attrs) throws IOException {
-        super.preVisitDirectory(dir, attrs);
+    public FileVisitResult preVisitDirectory(final Path dir, final 
BasicFileAttributes attributes) throws IOException {
+        super.preVisitDirectory(dir, attributes);
         return accept(dir) ? FileVisitResult.CONTINUE : 
FileVisitResult.SKIP_SUBTREE;
     }
 
     @Override
-    public FileVisitResult visitFile(final Path file, final 
BasicFileAttributes attrs) throws IOException {
+    public FileVisitResult visitFile(final Path file, final 
BasicFileAttributes attributes) throws IOException {
         if (accept(file) && Files.exists(file)) {
             Files.deleteIfExists(file);
         }
-        updateFileCounters(file, attrs);
+        updateFileCounters(file, attributes);
         return FileVisitResult.CONTINUE;
     }
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/commons/io/file/CopyDirectoryVisitor.java 
b/src/main/java/org/apache/commons/io/file/CopyDirectoryVisitor.java
new file mode 100644
index 0000000..b5a39d5
--- /dev/null
+++ b/src/main/java/org/apache/commons/io/file/CopyDirectoryVisitor.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.io.file;
+
+import java.io.IOException;
+import java.nio.file.CopyOption;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.BasicFileAttributes;
+
+import org.apache.commons.io.file.Counters.PathCounters;
+
+/**
+ * Copies a source directory to a target directory.
+ *
+ * @since 2.7
+ */
+public class CopyDirectoryVisitor extends CountingPathVisitor {
+
+    private static final CopyOption[] EMPTY_COPY_OPTIONS = new CopyOption[0];
+
+    private final CopyOption[] copyOptions;
+    private final Path sourceDirectory;
+    private final Path targetDirectory;
+
+    /**
+     * Constructs a new visitor that deletes files except for the files and 
directories explicitly given.
+     *
+     * @param pathCounter How to count visits.
+     * @param sourceDirectory The source directory
+     * @param targetDirectory The target directory
+     * @param copyOptions Specifies how the copying should be done.
+     */
+    public CopyDirectoryVisitor(final PathCounters pathCounter, final Path 
sourceDirectory, final Path targetDirectory,
+            final CopyOption... copyOptions) {
+        super(pathCounter);
+        this.sourceDirectory = sourceDirectory;
+        this.targetDirectory = targetDirectory;
+        this.copyOptions = copyOptions == null ? EMPTY_COPY_OPTIONS : 
copyOptions.clone();
+    }
+
+    @Override
+    public FileVisitResult preVisitDirectory(final Path directory, final 
BasicFileAttributes attributes)
+            throws IOException {
+        final Path newTargetDir = 
targetDirectory.resolve(sourceDirectory.relativize(directory));
+        if (Files.notExists(newTargetDir)) {
+            Files.createDirectory(newTargetDir);
+        }
+        return super.preVisitDirectory(directory, attributes);
+    }
+
+    @Override
+    public FileVisitResult visitFile(final Path sourceFile, final 
BasicFileAttributes attributes) throws IOException {
+        final Path targetFile = 
targetDirectory.resolve(sourceDirectory.relativize(sourceFile));
+        Files.copy(sourceFile, targetFile, copyOptions);
+        return super.visitFile(targetFile, attributes);
+    }
+
+}
diff --git a/src/main/java/org/apache/commons/io/file/CountingPathVisitor.java 
b/src/main/java/org/apache/commons/io/file/CountingPathVisitor.java
index a205dea..987863b 100644
--- a/src/main/java/org/apache/commons/io/file/CountingPathVisitor.java
+++ b/src/main/java/org/apache/commons/io/file/CountingPathVisitor.java
@@ -89,17 +89,17 @@ public class CountingPathVisitor extends SimplePathVisitor {
      * Updates the counters for visiting the given file.
      *
      * @param file the visited file.
-     * @param attrs the visited file attributes.
+     * @param attributes the visited file attributes.
      */
-    protected void updateFileCounters(final Path file, final 
BasicFileAttributes attrs) {
+    protected void updateFileCounters(final Path file, final 
BasicFileAttributes attributes) {
         pathCounters.getFileCounter().increment();
-        pathCounters.getByteCounter().add(attrs.size());
+        pathCounters.getByteCounter().add(attributes.size());
     }
 
     @Override
-    public FileVisitResult visitFile(final Path file, final 
BasicFileAttributes attrs) throws IOException {
+    public FileVisitResult visitFile(final Path file, final 
BasicFileAttributes attributes) throws IOException {
         if (Files.exists(file)) {
-            updateFileCounters(file, attrs);
+            updateFileCounters(file, attributes);
         }
         return FileVisitResult.CONTINUE;
     }
diff --git a/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java 
b/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java
index 609ac89..ba827eb 100644
--- a/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java
+++ b/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java
@@ -83,8 +83,7 @@ public class DeletingPathVisitor extends CountingPathVisitor {
         if (PathUtils.isEmptyDirectory(dir)) {
             Files.deleteIfExists(dir);
         }
-        super.postVisitDirectory(dir, exc);
-        return FileVisitResult.CONTINUE;
+        return super.postVisitDirectory(dir, exc);
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/io/file/PathUtils.java 
b/src/main/java/org/apache/commons/io/file/PathUtils.java
index 17b30da..7f83101 100644
--- a/src/main/java/org/apache/commons/io/file/PathUtils.java
+++ b/src/main/java/org/apache/commons/io/file/PathUtils.java
@@ -19,6 +19,7 @@ package org.apache.commons.io.file;
 
 import java.io.IOException;
 import java.net.URI;
+import java.nio.file.CopyOption;
 import java.nio.file.DirectoryStream;
 import java.nio.file.FileVisitor;
 import java.nio.file.Files;
@@ -39,7 +40,7 @@ public final class PathUtils {
      * Cleans a directory including sub-directories without deleting 
directories.
      *
      * @param directory directory to clean.
-     * @return The visitor used to clean the given directory.
+     * @return The visitation path counters.
      * @throws IOException if an I/O error is thrown by a visitor method.
      */
     public static PathCounters cleanDirectory(final Path directory) throws 
IOException {
@@ -47,6 +48,22 @@ public final class PathUtils {
     }
 
     /**
+     * Copies a source directory to a target directory.
+     *
+     * @param sourceDirectory The source directory
+     * @param targetDirectory The target directory
+     * @param copyOptions Specifies how the copying should be done.
+     * @return The visitation path counters.
+     * @throws IOException if an I/O error is thrown by a visitor method.
+     */
+    public static PathCounters copyDirectory(final Path sourceDirectory, final 
Path targetDirectory,
+            final CopyOption... copyOptions) throws IOException {
+        return visitFileTree(
+                new CopyDirectoryVisitor(Counters.longPathCounters(), 
sourceDirectory, targetDirectory, copyOptions),
+                sourceDirectory).getPathCounters();
+    }
+
+    /**
      * Counts aspects of a directory including sub-directories.
      *
      * @param directory directory to delete.
diff --git 
a/src/test/java/org/apache/commons/io/file/CleaningPathVisitorTest.java 
b/src/test/java/org/apache/commons/io/file/CleaningPathVisitorTest.java
index 62802c8..81b7f55 100644
--- a/src/test/java/org/apache/commons/io/file/CleaningPathVisitorTest.java
+++ b/src/test/java/org/apache/commons/io/file/CleaningPathVisitorTest.java
@@ -84,8 +84,7 @@ public class CleaningPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("cleaningPathVisitors")
     public void testCleanFolders1FileSize0(final CleaningPathVisitor visitor) 
throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0"),
 tempDir);
         assertCounts(1, 1, 0, PathUtils.visitFileTree(visitor, tempDir));
     }
 
@@ -95,8 +94,7 @@ public class CleaningPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("cleaningPathVisitors")
     public void testCleanFolders1FileSize1(final CleaningPathVisitor visitor) 
throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"),
 tempDir);
         assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDir));
     }
 
@@ -106,8 +104,7 @@ public class CleaningPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("pathCounters")
     public void testCleanFolders1FileSize1Skip(final PathCounters 
pathCounters) throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"),
 tempDir);
         final String skipFileName = "file-size-1.bin";
         final CountingPathVisitor visitor = new 
CleaningPathVisitor(pathCounters, skipFileName);
         assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDir));
@@ -122,8 +119,7 @@ public class CleaningPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("cleaningPathVisitors")
     public void testCleanFolders2FileSize2(final CleaningPathVisitor visitor) 
throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2"),
 tempDir);
         assertCounts(3, 2, 2, PathUtils.visitFileTree(visitor, tempDir));
     }
 }
diff --git 
a/src/test/java/org/apache/commons/io/file/CopyDirectoryVisitorTest.java 
b/src/test/java/org/apache/commons/io/file/CopyDirectoryVisitorTest.java
new file mode 100644
index 0000000..b48cfd0
--- /dev/null
+++ b/src/test/java/org/apache/commons/io/file/CopyDirectoryVisitorTest.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.io.file;
+
+import static org.apache.commons.io.file.CounterAssertions.assertCounts;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.Counters.PathCounters;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
+/**
+ * Tests {@link CountingPathVisitor}.
+ */
+public class CopyDirectoryVisitorTest extends TestArguments {
+
+    private Path targetDir;
+
+    @AfterEach
+    public void afterEach() throws IOException {
+        PathUtils.deleteDirectory(targetDir);
+    }
+
+    @BeforeEach
+    public void beforeEach() throws IOException {
+        targetDir = Files.createTempDirectory(getClass().getCanonicalName() + 
"-target");
+    }
+
+    /**
+     * Tests an empty folder.
+     */
+    @ParameterizedTest
+    @MethodSource("pathCounters")
+    public void testCopyDirectoryEmptyFolder(final PathCounters pathCounters) 
throws IOException {
+        final Path sourceDir = 
Files.createTempDirectory(getClass().getSimpleName());
+        try {
+            assertCounts(1, 0, 0,
+                    PathUtils.visitFileTree(new 
CopyDirectoryVisitor(pathCounters, sourceDir, targetDir, 
StandardCopyOption.REPLACE_EXISTING), sourceDir));
+        } finally {
+            Files.deleteIfExists(sourceDir);
+        }
+    }
+
+    /**
+     * Tests a directory with one file of size 0.
+     */
+    @ParameterizedTest
+    @MethodSource("pathCounters")
+    public void testCopyDirectoryFolders1FileSize0(final PathCounters 
pathCounters) throws IOException {
+        final Path sourceDir = 
Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0");
+        assertCounts(1, 1, 0, PathUtils.visitFileTree(
+                new CopyDirectoryVisitor(pathCounters, sourceDir, targetDir, 
StandardCopyOption.REPLACE_EXISTING),
+                sourceDir));
+    }
+
+    /**
+     * Tests a directory with one file of size 1.
+     */
+    @ParameterizedTest
+    @MethodSource("pathCounters")
+    public void testCopyDirectoryFolders1FileSize1(final PathCounters 
pathCounters) throws IOException {
+        final Path sourceDir = 
Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1");
+        assertCounts(1, 1, 1, PathUtils.visitFileTree(
+                new CopyDirectoryVisitor(pathCounters, sourceDir, targetDir, 
StandardCopyOption.REPLACE_EXISTING),
+                sourceDir));
+    }
+
+    /**
+     * Tests a directory with two subdirectorys, each containing one file of 
size 1.
+     */
+    @ParameterizedTest
+    @MethodSource("pathCounters")
+    public void testCopyDirectoryFolders2FileSize2(final PathCounters 
pathCounters) throws IOException {
+        final Path sourceDir = 
Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2");
+        assertCounts(3, 2, 2, PathUtils.visitFileTree(
+                new CopyDirectoryVisitor(pathCounters, sourceDir, targetDir, 
StandardCopyOption.REPLACE_EXISTING),
+                sourceDir));
+    }
+
+}
diff --git a/src/test/java/org/apache/commons/io/file/CounterAssertions.java 
b/src/test/java/org/apache/commons/io/file/CounterAssertions.java
index d2e3477..5544e88 100644
--- a/src/test/java/org/apache/commons/io/file/CounterAssertions.java
+++ b/src/test/java/org/apache/commons/io/file/CounterAssertions.java
@@ -26,20 +26,22 @@ import org.apache.commons.io.file.Counters.PathCounters;
 
 class CounterAssertions {
 
-    static void assertCounter(final long expected, final Counter actual) {
-        assertEquals(expected, actual.get());
-        assertEquals(Long.valueOf(expected), actual.getLong());
-        assertEquals(BigInteger.valueOf(expected), actual.getBigInteger());
+    static void assertCounter(final long expected, final Counter actual, 
String message) {
+        assertEquals(expected, actual.get(), message);
+        assertEquals(Long.valueOf(expected), actual.getLong(), message);
+        assertEquals(BigInteger.valueOf(expected), actual.getBigInteger(), 
message);
     }
 
-    static void assertCounts(final long expectedDirCount, final long 
expectedFileCount, final long expectedByteCount, final CountingPathVisitor 
actualVisitor) {
+    static void assertCounts(final long expectedDirCount, final long 
expectedFileCount, final long expectedByteCount,
+            final CountingPathVisitor actualVisitor) {
         assertCounts(expectedDirCount, expectedFileCount, expectedByteCount, 
actualVisitor.getPathCounters());
     }
 
-    static void assertCounts(final long expectedDirCount, final long 
expectedFileCount, final long expectedByteCount, final PathCounters 
actualPathCounters) {
-        assertCounter(expectedDirCount, 
actualPathCounters.getDirectoryCounter());
-        assertCounter(expectedFileCount, actualPathCounters.getFileCounter());
-        assertCounter(expectedByteCount, actualPathCounters.getByteCounter());
+    static void assertCounts(final long expectedDirCount, final long 
expectedFileCount, final long expectedByteCount,
+            final PathCounters actualPathCounters) {
+        assertCounter(expectedDirCount, 
actualPathCounters.getDirectoryCounter(), "getDirectoryCounter");
+        assertCounter(expectedFileCount, actualPathCounters.getFileCounter(), 
"getFileCounter");
+        assertCounter(expectedByteCount, actualPathCounters.getByteCounter(), 
"getByteCounter");
     }
 
 }
diff --git a/src/test/java/org/apache/commons/io/file/CountersTest.java 
b/src/test/java/org/apache/commons/io/file/CountersTest.java
index 92c1aa5..1992e0a 100644
--- a/src/test/java/org/apache/commons/io/file/CountersTest.java
+++ b/src/test/java/org/apache/commons/io/file/CountersTest.java
@@ -30,7 +30,7 @@ public class CountersTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("numberCounters")
     public void testInitialValue(final Counter counter) {
-        assertCounter(0, counter);
+        assertCounter(0, counter, "");
     }
 
     @ParameterizedTest
diff --git 
a/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java 
b/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java
index 0a56831..d74ae3a 100644
--- a/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java
+++ b/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java
@@ -85,8 +85,7 @@ public class DeletingPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("deletingPathVisitors")
     public void testDeleteFolders1FileSize0(final DeletingPathVisitor visitor) 
throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0"),
 tempDir);
         assertCounts(1, 1, 0, PathUtils.visitFileTree(visitor, tempDir));
         // This will throw if not empty.
         Files.deleteIfExists(tempDir);
@@ -98,8 +97,7 @@ public class DeletingPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("deletingPathVisitors")
     public void testDeleteFolders1FileSize1(final DeletingPathVisitor visitor) 
throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"),
 tempDir);
         assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDir));
         // This will throw if not empty.
         Files.deleteIfExists(tempDir);
@@ -111,8 +109,7 @@ public class DeletingPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("pathCounters")
     public void testDeleteFolders1FileSize1Skip(final PathCounters 
pathCounters) throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"),
 tempDir);
         final String skipFileName = "file-size-1.bin";
         final CountingPathVisitor visitor = new 
DeletingPathVisitor(pathCounters, skipFileName);
         assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDir));
@@ -127,8 +124,7 @@ public class DeletingPathVisitorTest extends TestArguments {
     @ParameterizedTest
     @MethodSource("deletingPathVisitors")
     public void testDeleteFolders2FileSize2(final DeletingPathVisitor visitor) 
throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2"),
 tempDir);
         assertCounts(3, 2, 2, PathUtils.visitFileTree(visitor, tempDir));
         // This will throw if not empty.
         Files.deleteIfExists(tempDir);
diff --git 
a/src/test/java/org/apache/commons/io/file/PathUtilsCleanDirectoryTest.java 
b/src/test/java/org/apache/commons/io/file/PathUtilsCleanDirectoryTest.java
index dd0cb13..7a77f02 100644
--- a/src/test/java/org/apache/commons/io/file/PathUtilsCleanDirectoryTest.java
+++ b/src/test/java/org/apache/commons/io/file/PathUtilsCleanDirectoryTest.java
@@ -57,8 +57,7 @@ public class PathUtilsCleanDirectoryTest {
      */
     @Test
     public void testCleanDirectory1FileSize0() throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0"),
 tempDir);
         assertCounts(1, 1, 0, PathUtils.cleanDirectory(tempDir));
     }
 
@@ -67,8 +66,7 @@ public class PathUtilsCleanDirectoryTest {
      */
     @Test
     public void testCleanDirectory1FileSize1() throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"),
 tempDir);
         assertCounts(1, 1, 1, PathUtils.cleanDirectory(tempDir));
     }
 
@@ -77,8 +75,7 @@ public class PathUtilsCleanDirectoryTest {
      */
     @Test
     public void testCleanDirectory2FileSize2() throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2"),
 tempDir);
         assertCounts(3, 2, 2, PathUtils.cleanDirectory(tempDir));
     }
 
diff --git 
a/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java 
b/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java
index 905f2fc..19f2f6c 100644
--- a/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java
+++ b/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java
@@ -54,8 +54,7 @@ public class PathUtilsDeleteDirectoryTest {
      */
     @Test
     public void testDeleteDirectory1FileSize0() throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0"),
 tempDir);
         assertCounts(1, 1, 0, PathUtils.deleteDirectory(tempDir));
         // This will throw if not empty.
         Files.deleteIfExists(tempDir);
@@ -66,8 +65,7 @@ public class PathUtilsDeleteDirectoryTest {
      */
     @Test
     public void testDeleteDirectory1FileSize1() throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"),
 tempDir);
         assertCounts(1, 1, 1, PathUtils.deleteDirectory(tempDir));
         // This will throw if not empty.
         Files.deleteIfExists(tempDir);
@@ -78,8 +76,7 @@ public class PathUtilsDeleteDirectoryTest {
      */
     @Test
     public void testDeleteDirectory2FileSize2() throws IOException {
-        
FileUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2").toFile(),
-                tempDir.toFile());
+        
PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2"),
 tempDir);
         assertCounts(3, 2, 2, PathUtils.deleteDirectory(tempDir));
         // This will throw if not empty.
         Files.deleteIfExists(tempDir);

Reply via email to