diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index 50b2680d..5dcd51fa 100644 --- a/src/main/kotlin/html4tree/main.kt +++ b/src/main/kotlin/html4tree/main.kt @@ -124,18 +124,21 @@ fun process_dir(curr_dir: File){ """ val index_middle = fun():String{ - var l="" + // ⚡ Bolt: 반복문 내에서 문자열 결합(+=) 대신 StringBuilder 사용 + // 이렇게 하면 O(N^2)의 문자열 할당을 피할 수 있어 파일 수가 많은 디렉토리에 대해 + // 성능이 크게 향상됩니다. + val l = StringBuilder() val dir_files: MutableList = curr_dir.listFiles()?.toMutableList() ?: mutableListOf() dir_files.sortWith(compareBy ({it.name}) ) dir_files.forEach { val isLinkedDirectory = it.isDirectory() && !java.nio.file.Files.isSymbolicLink(it.toPath()) if((it.getName() !in exclude) && (isLinkedDirectory || !it.isDirectory())) { - l += """
  • ${if (isLinkedDirectory) { "📁" } else { "▸" }} ${it.getName().escapeHtml()}
  • """+"\n" + l.append("""
  • ${if (isLinkedDirectory) { "📁" } else { "▸" }} ${it.getName().escapeHtml()}
  • """+"\n") } } - return l; + return l.toString(); } val index_bottom="""