diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/World.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/World.java index eb5b99c247..410f0082cf 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/World.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/World.java @@ -88,13 +88,15 @@ public World(Path file) throws IOException { root = fs.getPath("/"); fileName = FileUtils.getName(this.file); } else { - List files = Files.list(fs.getPath("/")).toList(); - if (files.size() != 1 || !Files.isDirectory(files.get(0))) { - throw new IOException("Not a valid world zip file"); - } + try (Stream filesStream = Files.list(fs.getPath("/"))) { + List files = filesStream.toList(); + if (files.size() != 1 || !Files.isDirectory(files.get(0))) { + throw new IOException("Not a valid world zip file"); + } - root = files.get(0); - fileName = FileUtils.getName(root); + root = files.get(0); + fileName = FileUtils.getName(root); + } } Path levelDat = root.resolve("level.dat");