diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/tree/ArchiveFileTree.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/tree/ArchiveFileTree.java index f96b898c4..57db1c5e6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/tree/ArchiveFileTree.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/tree/ArchiveFileTree.java @@ -129,10 +129,10 @@ public abstract class ArchiveFileTree implements Clos } if (entry.isDirectory()) { - if (dir.entry != null) { - throw new IOException("Duplicate entry: " + entry.getName()); - } - dir.entry = entry; + if (dir.entry == null) + dir.entry = entry; + else if (!dir.entry.isDirectory()) + throw new IOException("A file and a directory have the same name: " + entry.getName()); } else { String fileName = path[path.length - 1];