From feb62498fdd45322295e6f336ad1cd1b5a87518f Mon Sep 17 00:00:00 2001 From: yebukong Date: Wed, 31 Aug 2022 12:57:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dexist=E5=88=86=E9=9A=94?= =?UTF-8?q?=E7=AC=A6=E7=BB=93=E5=B0=BE=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/extra/ftp/AbstractFtp.java | 10 ++++++ .../java/cn/hutool/extra/ftp/FtpTest.java | 33 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ftp/AbstractFtp.java b/hutool-extra/src/main/java/cn/hutool/extra/ftp/AbstractFtp.java index bdf7d657a..4a3295553 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/ftp/AbstractFtp.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ftp/AbstractFtp.java @@ -2,6 +2,7 @@ package cn.hutool.extra.ftp; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.CharUtil; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; @@ -96,6 +97,15 @@ public abstract class AbstractFtp implements Closeable { * @return 是否存在 */ public boolean exist(String path) { + // 目录验证 + if (isDir(path)) { + return true; + } else { + if (CharUtil.isFileSeparator(path.charAt(path.length() - 1))) { + return false; + } + } + // 文件验证 final String fileName = FileUtil.getName(path); final String dir = StrUtil.removeSuffix(path, fileName); final List names; diff --git a/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java b/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java index 3bed1d027..275c6339d 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java @@ -100,4 +100,37 @@ public class FtpTest { Console.log(ftp.pwd()); } } + + @Test + @Ignore + public void existSftpTest() throws Exception { + try (Sftp ftp = new Sftp("127.0.0.1", 22, "test", "test")) { + Console.log(ftp.pwd()); + Console.log(ftp.exist("/home/test")); + Console.log(ftp.exist("/home/test/")); + Console.log(ftp.exist("/home/test//////")); + Console.log(ftp.exist("/home/test/file1")); + Console.log(ftp.exist("/home/test/file1/")); + Console.log(ftp.exist("///////////")); + Console.log(ftp.exist("./")); + Console.log(ftp.exist("./file1")); + Console.log(ftp.pwd()); + } + } + + @Test + @Ignore + public void existFtpTest() throws Exception { + try (Ftp ftp = new Ftp("127.0.0.1", 21)) { + Console.log(ftp.exist("/test/")); + Console.log(ftp.exist("/test/")); + Console.log(ftp.exist("/test//////")); + Console.log(ftp.exist("/file1")); + Console.log(ftp.exist("/file1/")); + Console.log(ftp.exist("///////////")); + Console.log(ftp.exist("./")); + Console.log(ftp.exist("./file1")); + Console.log(ftp.pwd()); + } + } }