mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
Merge pull request #2574 from yebukong/v5-dev-yebukong
Ftp方法isDir和exist修复及改进
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -73,7 +74,12 @@ public abstract class AbstractFtp implements Closeable {
|
||||
* @since 5.7.5
|
||||
*/
|
||||
public boolean isDir(String dir) {
|
||||
return cd(dir);
|
||||
final String workDir = pwd();
|
||||
try {
|
||||
return cd(dir);
|
||||
} finally {
|
||||
cd(workDir);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -91,8 +97,22 @@ public abstract class AbstractFtp implements Closeable {
|
||||
* @return 是否存在
|
||||
*/
|
||||
public boolean exist(String path) {
|
||||
if (StrUtil.isBlank(path)) {
|
||||
return false;
|
||||
}
|
||||
// 目录验证
|
||||
if (isDir(path)) {
|
||||
return true;
|
||||
}
|
||||
if (CharUtil.isFileSeparator(path.charAt(path.length() - 1))) {
|
||||
return false;
|
||||
}
|
||||
final String fileName = FileUtil.getName(path);
|
||||
final String dir = StrUtil.removeSuffix(path, fileName);
|
||||
if (".".equals(fileName) || "..".equals(fileName)) {
|
||||
return false;
|
||||
}
|
||||
// 文件验证
|
||||
final String dir = StrUtil.emptyToDefault(StrUtil.removeSuffix(path, fileName), ".");
|
||||
final List<String> names;
|
||||
try {
|
||||
names = ls(dir);
|
||||
|
Reference in New Issue
Block a user