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 21eb34d902..a3abaf4606 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 @@ -127,7 +127,7 @@ public class FileOperationHelper { WARNING_MESSAGE); return StringUtils.EMPTY; } - String name = getNoRepeatedName4Paste(targetDir, sourceFile.getName()); + String name = getNoRepeatedName4Paste(targetDir, sourceFile); String targetFile = StableUtils.pathJoin(targetDir, name); if (sourceFile.isDirectory()) { copyDir(sourcePath, targetFile, withCopyVcs); @@ -177,19 +177,22 @@ public class FileOperationHelper { * 重名处理 * * @param targetDir - * @param oldName + * @param sourceFile * @return */ - private String getNoRepeatedName4Paste(String targetDir, String oldName) { + private String getNoRepeatedName4Paste(String targetDir, FileNode sourceFile) { + String oldName = sourceFile.getName(); while (isNameRepeaded(targetDir, oldName)) { - int index = oldName.lastIndexOf("."); - if (index > 0) { - String oName = oldName.substring(0, index); - oName = oName + Toolkit.i18nText("Fine-Design_Table_Data_Copy_Of_Table_Data"); - oldName = oName.concat(oldName.substring(index)); - } else { + if (sourceFile.isDirectory()) { //目录重名 oldName = oldName + Toolkit.i18nText("Fine-Design_Table_Data_Copy_Of_Table_Data"); + } else { + int index = oldName.lastIndexOf("."); + if (index > 0) { + String oName = oldName.substring(0, index); + oName = oName + Toolkit.i18nText("Fine-Design_Table_Data_Copy_Of_Table_Data"); + oldName = oName.concat(oldName.substring(index)); + } } } return oldName;