Add FilesUncheck.find(Path, int, BiPredicate<Path, BasicFileAttributes>,
FileVisitOption...)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9265b57..71523ce 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -58,6 +58,9 @@
       <action dev="ggregory" type="add" due-to="Gary Gregory">
         Add IOUtils.skip[Fully](InputStream, long, Supplier&lt;byte[]&gt;).
       </action>
+      <action dev="ggregory" type="add" due-to="Gary Gregory">
+        Add FilesUncheck.find(Path, int, BiPredicate%lt;Path, BasicFileAttributes&gt;, FileVisitOption...)
+      </action>
       <!-- FIX -->
       <action dev="ggregory" type="fix" issue="IO-799" due-to="Jeroen van der Vegt, Gary Gregory">
         ReaderInputStream.read() throws an exception instead of returning -1 when called again after returning -1.
diff --git a/src/main/java/org/apache/commons/io/file/FilesUncheck.java b/src/main/java/org/apache/commons/io/file/FilesUncheck.java
index e99d09c..02a1feb 100644
--- a/src/main/java/org/apache/commons/io/file/FilesUncheck.java
+++ b/src/main/java/org/apache/commons/io/file/FilesUncheck.java
@@ -42,6 +42,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.function.BiPredicate;
 import java.util.stream.Stream;
 
 import org.apache.commons.io.function.Uncheck;
@@ -242,6 +243,22 @@ public static boolean deleteIfExists(final Path path) {
     }
 
     /**
+     * Delegates to {@link Files#find(Path, int, BiPredicate, FileVisitOption...)} throwing {@link UncheckedIOException} instead of {@link IOException}.
+     *
+     * @param start    See delegate.
+     * @param maxDepth See delegate.
+     * @param matcher  See delegate.
+     * @param options  See delegate.
+     * @return See delegate.
+     * @throws UncheckedIOException Wraps an {@link IOException}.
+     * @since 2.14.0
+     */
+    public static Stream<Path> find(final Path start, final int maxDepth, final BiPredicate<Path, BasicFileAttributes> matcher,
+            final FileVisitOption... options) {
+        return Uncheck.apply(Files::find, start, maxDepth, matcher, options);
+    }
+
+    /**
      * Delegates to {@link Files#getAttribute(Path, String, LinkOption...)} throwing {@link UncheckedIOException} instead of
      * {@link IOException}.
      *
diff --git a/src/test/java/org/apache/commons/io/file/FilesUncheckTest.java b/src/test/java/org/apache/commons/io/file/FilesUncheckTest.java
index 1882353..4fa7368 100644
--- a/src/test/java/org/apache/commons/io/file/FilesUncheckTest.java
+++ b/src/test/java/org/apache/commons/io/file/FilesUncheckTest.java
@@ -165,6 +165,11 @@ public void testDeleteIfExists() {
     }
 
     @Test
+    public void testFind() {
+        assertNotNull(FilesUncheck.find(FILE_PATH_EMPTY, 0, (t, u) -> false));
+    }
+
+    @Test
     public void testGetAttribute() {
         assertEquals(0L, FilesUncheck.getAttribute(FILE_PATH_EMPTY, "basic:size", LinkOption.NOFOLLOW_LINKS));
     }