diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/Ftp.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/Ftp.java
index bf7309a92..3bc8a72e5 100644
--- a/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/Ftp.java
+++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/Ftp.java
@@ -12,6 +12,7 @@
package org.dromara.hutool.extra.ftp;
+import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.io.IORuntimeException;
@@ -350,6 +351,18 @@ public class Ftp extends AbstractFtp {
return ArrayUtil.map(lsFiles(path), FTPFile::getName);
}
+ /**
+ * 遍历某个目录下所有文件和目录,不会递归遍历
+ * 此方法自动过滤"."和".."两种目录
+ *
+ * @param path 目录
+ * @param predicate 过滤器,null表示不过滤,默认去掉"."和".."两种目录
+ * @return 文件名或目录名列表
+ */
+ public List ls(final String path, final Predicate predicate) {
+ return CollUtil.map(lsFiles(path, predicate), FTPFile::getName);
+ }
+
/**
* 遍历某个目录下所有文件和目录,不会递归遍历
* 此方法自动过滤"."和".."两种目录