Adds a new function for deleting files recursively

This commit is contained in:
Kristian Knarvik 2021-02-12 16:12:58 +01:00
parent 3254481326
commit 8cdb1f143c
3 changed files with 33 additions and 12 deletions

View File

@ -16,7 +16,7 @@ import java.nio.file.StandardCopyOption;
import java.util.Scanner; import java.util.Scanner;
/** /**
* A holding class for methods shared between classes. * A holding class for methods shared between classes
* *
* @author Kristian Knarvik <kristian.knarvik@knett.no> * @author Kristian Knarvik <kristian.knarvik@knett.no>
* @version 1.0.0 * @version 1.0.0
@ -199,10 +199,11 @@ public final class CommonFunctions {
StringBuilder text = new StringBuilder(); StringBuilder text = new StringBuilder();
char[] readCharacters = new char[1000]; char[] readCharacters = new char[1000];
while (reader.ready()) { while (reader.ready()) {
reader.read(readCharacters); if (reader.read(readCharacters) > 0) {
text.append(readCharacters); text.append(readCharacters);
readCharacters = new char[1000]; readCharacters = new char[1000];
} }
}
return text.toString().trim(); return text.toString().trim();
} }
@ -244,4 +245,31 @@ public final class CommonFunctions {
public static boolean nameIsValid(String name) { public static boolean nameIsValid(String name) {
return !name.equals("") && name.matches("[^!?;,]+"); return !name.equals("") && name.matches("[^!?;,]+");
} }
/**
* Removes all files within a folder
* @param target <p>The folder to delete from</p>
*/
static void removeFilesRecursively(File target) {
File[] oldFiles = target.listFiles();
if (oldFiles == null) {
throw new IllegalArgumentException("Unable to list files in directory");
}
for (File file : oldFiles) {
if (file.isFile()) {
if (!file.delete()) {
throw new IllegalArgumentException("Unable to delete a file from the directory");
}
}
}
for (File file : oldFiles) {
if (file.isDirectory()) {
removeFilesRecursively(file);
if (!file.delete()) {
throw new IllegalArgumentException("Unable to delete a file from the directory");
}
}
}
}
} }

View File

@ -5,7 +5,6 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import net.knarcraft.minecraftserverlauncher.Main; import net.knarcraft.minecraftserverlauncher.Main;
import net.knarcraft.minecraftserverlauncher.userinterface.GUI;
import javax.swing.*; import javax.swing.*;
import java.io.*; import java.io.*;

View File

@ -109,12 +109,6 @@ public class JarDownloaderTest {
if (!target.exists() && !target.mkdirs()) { if (!target.exists() && !target.mkdirs()) {
throw new IllegalArgumentException("Unable to create the test files directory"); throw new IllegalArgumentException("Unable to create the test files directory");
} }
File[] oldFiles = target.listFiles(); CommonFunctions.removeFilesRecursively(target);
if (oldFiles == null) {
throw new IllegalArgumentException("Unable to list files in jar test directory");
}
for (File file : oldFiles) {
assertTrue(file.delete());
}
} }
} }