diff --git a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java index ed8b1dae159d..763d05af2d3b 100644 --- a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java +++ b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java @@ -430,7 +430,7 @@ public class RecentProjectsManagerBase extends RecentProjectsManager implements return existing; } - if (Files.isDirectory(projectFile.resolve(Project.DIRECTORY_STORE_FOLDER))) { + if (ProjectUtil.isValidProjectPath(projectFile)) { return PlatformProjectOpenProcessor.openExistingProject(projectFile, projectFile, openProjectOptions, null); } else { diff --git a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java index 6e68e8be5a04..f68d47d0258c 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java @@ -134,10 +134,7 @@ public class ProjectUtil { } } - if (Files.isDirectory(file.resolve(Project.DIRECTORY_STORE_FOLDER))) { - return PlatformProjectOpenProcessor.openExistingProject(file, file, options, null); - } - else if (StringUtil.endsWith(file.toString(), ProjectFileType.DOT_DEFAULT_EXTENSION) && Files.isRegularFile(file)) { + if (isValidProjectPath(file)) { return PlatformProjectOpenProcessor.openExistingProject(file, file, options, null); } @@ -402,4 +399,9 @@ public class ProjectUtil { } return result; } + + public static boolean isValidProjectPath(@NotNull Path file) { + return Files.isDirectory(file.resolve(Project.DIRECTORY_STORE_FOLDER)) || + (StringUtil.endsWith(file.toString(), ProjectFileType.DOT_DEFAULT_EXTENSION) && Files.isRegularFile(file)); + } } \ No newline at end of file