From 9b0b975490e4756c1947b4c23b984d87921422cc Mon Sep 17 00:00:00 2001 From: Calboot Date: Sun, 21 Dec 2025 21:49:19 +0800 Subject: [PATCH] =?UTF-8?q?[Enhancement]=20=E5=AF=BC=E5=87=BA=E6=95=B4?= =?UTF-8?q?=E5=90=88=E5=8C=85=E6=97=B6=E9=9A=90=E8=97=8F=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6=20(#4897)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves #4785 --- .../ui/export/ModpackFileSelectionPage.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java index 17d639220..f002dd548 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ModpackFileSelectionPage.java @@ -43,7 +43,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Objects; import static org.jackhuang.hmcl.util.Lang.mapOf; import static org.jackhuang.hmcl.util.Pair.pair; @@ -93,9 +92,22 @@ public final class ModpackFileSelectionPage extends BorderPane implements Wizard ModAdviser.ModSuggestion state = ModAdviser.ModSuggestion.SUGGESTED; if (basePath.length() > "minecraft/".length()) { state = adviser.advise(StringUtils.substringAfter(basePath, "minecraft/") + (isDirectory ? "/" : ""), isDirectory); - if (!isDirectory && Objects.equals(FileUtils.getNameWithoutExtension(file), version)) - state = ModAdviser.ModSuggestion.HIDDEN; - if (isDirectory && Objects.equals(FileUtils.getName(file), version + "-natives")) // Ignore -natives + + String fileName = FileUtils.getName(file); + + if (!isDirectory) { + switch (fileName) { + case ".DS_Store", // macOS system file + "desktop.ini", "Thumbs.db" // Windows system files + -> state = ModAdviser.ModSuggestion.HIDDEN; + } + if (fileName.startsWith("._")) // macOS system file + state = ModAdviser.ModSuggestion.HIDDEN; + if (FileUtils.getNameWithoutExtension(file).equals(version)) + state = ModAdviser.ModSuggestion.HIDDEN; + } + + if (isDirectory && fileName.equals(version + "-natives")) // Ignore -natives state = ModAdviser.ModSuggestion.HIDDEN; if (state == ModAdviser.ModSuggestion.HIDDEN) return null;