aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/FileUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/FileUtils.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/FileUtils.java34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/FileUtils.java b/src/main/java/de/hysky/skyblocker/utils/FileUtils.java
index 9bec2745..59b706c4 100644
--- a/src/main/java/de/hysky/skyblocker/utils/FileUtils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/FileUtils.java
@@ -1,29 +1,35 @@
package de.hysky.skyblocker.utils;
+import com.mojang.logging.LogUtils;
+import org.slf4j.Logger;
+
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
-
-import org.slf4j.Logger;
-
-import com.mojang.logging.LogUtils;
+import java.util.stream.Stream;
public class FileUtils {
private static final Logger LOGGER = LogUtils.getLogger();
public static void recursiveDelete(Path dir) throws IOException {
+ if (!Files.exists(dir)) {
+ return;
+ }
+
if (Files.isDirectory(dir) && !Files.isSymbolicLink(dir)) {
- Files.list(dir).forEach(child -> {
- try {
- recursiveDelete(child);
- } catch (Exception e) {
- LOGGER.error("[Skyblocker] Encountered an exception while deleting a file! Path: {}", child.toAbsolutePath(), e);
- }
- });
+ try (Stream<Path> stream = Files.list(dir)) {
+ stream.forEach(child -> {
+ try {
+ recursiveDelete(child);
+ } catch (Exception e) {
+ LOGGER.error("[Skyblocker] Encountered an exception while deleting a file. Path: {}", child.toAbsolutePath(), e);
+ }
+ });
+ }
}
- if (!Files.isWritable(dir)) {
- dir.toFile().setWritable(true);
+ if (!Files.isWritable(dir) && !dir.toFile().setWritable(true)) {
+ LOGGER.error("[Skyblocker] Failed to make file writable. Path: {}", dir.toAbsolutePath());
}
Files.delete(dir);
@@ -31,7 +37,7 @@ public class FileUtils {
/**
* Replaces any characters that do not match the regex: [^a-z0-9_.-]
- *
+ *
* @implNote Designed to convert a file path to an {@link net.minecraft.util.Identifier}
*/
public static String normalizePath(Path path) {