diff --git a/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java b/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java index bdbab64136..bc947df414 100644 --- a/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java +++ b/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java @@ -18,6 +18,8 @@ import com.fr.workspace.WorkContext; import com.fr.workspace.resource.ResourceIOException; import org.jetbrains.annotations.NotNull; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import static javax.swing.JOptionPane.WARNING_MESSAGE; @@ -27,8 +29,6 @@ import static javax.swing.JOptionPane.WARNING_MESSAGE; */ public class FileOperationHelper { - private static final char DIR_SEPARATOR = '/'; - private static final FileOperationHelper INSTANCE = new FileOperationHelper(); public static FileOperationHelper getInstance() { @@ -36,10 +36,10 @@ public class FileOperationHelper { } /** - * 检查多个目标文件夹是否含有源文件夹的子文件夹 + * 检查目标文件夹是否为多个源文件夹中,任一文件夹的子文件夹 * - * @param fileNodes - * @param targetNode + * @param fileNodes 需移动的源文件 + * @param targetNode 移动后的目标文件夹 * @return */ public boolean isSubDirectory(@NotNull ExpandMutableTreeNode[] fileNodes, @NotNull FileNode targetNode) { @@ -55,17 +55,16 @@ public class FileOperationHelper { /** * 检查目标文件夹是否为源文件夹的子文件夹 * - * @param sourceFileNode - * @param targetNode + * @param sourceFileNode 需移动的源文件 + * @param targetNode 移动后的目标文件夹 */ public boolean isSubDirectory(@NotNull FileNode sourceFileNode, @NotNull FileNode targetNode) { if (!sourceFileNode.isDirectory() || !targetNode.isDirectory()) { return false; } - String sourceDir = sourceFileNode.getEnvPath(); - String targetDir = targetNode.getEnvPath(); - return StringUtils.equals(targetDir, sourceDir) || - (targetDir.startsWith(sourceDir) && targetDir.charAt(sourceDir.length()) == DIR_SEPARATOR); + Path sourceDir = Paths.get(sourceFileNode.getEnvPath()); + Path targetDir = Paths.get(targetNode.getEnvPath()); + return targetDir.startsWith(sourceDir); } public String moveFile(FileNode sourceFileNode, String targetDir) {