String (File path, LibraryLevel level, DataNode<ProjectData> ideProject) { final String fileName = FileUtilRt.getNameWithoutExtension(path.getName()); if (level == LibraryLevel.MODULE) { return fileName; } else { int count = 0; while (true) { String candidateName = fileName + (count == 0 ? "" : "_" + count); DataNode<LibraryData> libraryData = ExternalSystemApiUtil.find(ideProject, ProjectKeys.LIBRARY, node -> node.getData().getExternalName().equals(candidateName)); if (libraryData != null) { if (libraryData.getData().getPaths(LibraryPathType.BINARY).contains(FileUtil.toSystemIndependentName(path.getPath()))) { return candidateName; } else { count++; } } else { return candidateName; } } } }