From 2735c311ad96f11cb15d54f1baa5990fcaea0a01 Mon Sep 17 00:00:00 2001 From: Downforce Agent Date: Sun, 30 Jun 2024 07:15:48 -0500 Subject: [PATCH] more reliable Remove All --- src/Gonzo.java | 14 +------------- src/Main.java | 12 ++++++++++++ src/MissPiggy.java | 6 +----- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/Gonzo.java b/src/Gonzo.java index 8e1d0be..1195b83 100644 --- a/src/Gonzo.java +++ b/src/Gonzo.java @@ -289,7 +289,7 @@ public class Gonzo { } try { File tmp = new File(System.getProperty("user.home") + "/.firestar/temp/"); - deleteDir(tmp); + Main.deleteDir(tmp); } catch (Exception e) { System.out.println("WARNING: Temporary files may not have been properly cleared.\n" + e.getMessage()); consoleDisplay.append("WARNING: Temporary files may not have been properly cleared.\n" + e.getMessage()); @@ -345,16 +345,4 @@ public class Gonzo { } } } - - private void deleteDir(File file) { // https://stackoverflow.com/a/29175213/9259829 - File[] contents = file.listFiles(); - if (contents != null) { - for (File f : contents) { - if (! Files.isSymbolicLink(f.toPath())) { - deleteDir(f); - } - } - } - file.delete(); - } } diff --git a/src/Main.java b/src/Main.java index af6edd1..54493f6 100644 --- a/src/Main.java +++ b/src/Main.java @@ -128,4 +128,16 @@ public class Main { System.out.println(e.getMessage()); } } + + public static void deleteDir(File file) { // https://stackoverflow.com/a/29175213/9259829 + File[] contents = file.listFiles(); + if (contents != null) { + for (File f : contents) { + if (! Files.isSymbolicLink(f.toPath())) { + deleteDir(f); + } + } + } + file.delete(); + } } \ No newline at end of file diff --git a/src/MissPiggy.java b/src/MissPiggy.java index 8626bcd..9d65f90 100644 --- a/src/MissPiggy.java +++ b/src/MissPiggy.java @@ -396,11 +396,7 @@ public class MissPiggy implements ActionListener { int result = JOptionPane.showConfirmDialog(frame, "Do you really want to delete all mods?", "Remove All", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); if (result == JOptionPane.YES_OPTION) { - for (Main.Mod entry : Main.Mods) { - new File(System.getProperty("user.home") + "/.firestar/mods/" + entry.path).delete(); - } - - new File(System.getProperty("user.home") + "/.firestar/mods/index").delete(); + Main.deleteDir(new File(System.getProperty("user.home") + "/.firestar/mods/")); Main.Mods.clear(); InitializeModListStructure();