X-Git-Url: https://git.pterodactylus.net/?p=demoscenemusic.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fcore%2FDataDirectory.java;h=faa169e83782d67020e6e3853fba1d4c6d632105;hp=1574f73df1b9fec7ae9e4da64a14e8ba895650ad;hb=565ad78c862c9fefcba5fb35fd07e6d2a25746a1;hpb=06787f727a401ed8cc4c3ecd23936bf40a8b7531 diff --git a/src/main/java/net/pterodactylus/demoscenemusic/core/DataDirectory.java b/src/main/java/net/pterodactylus/demoscenemusic/core/DataDirectory.java index 1574f73..faa169e 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/core/DataDirectory.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/core/DataDirectory.java @@ -64,6 +64,25 @@ public class DataDirectory { return new File(file, getFileName(id)); } + /** + * Removes the file and all its directories, up to the + * {@link #dataDirectory}. + * + * @param id + * The ID of the file to remove + */ + public void removeFile(String id) { + File file = getFile(id); + if (file.delete()) { + File parentDirectory = file.getParentFile(); + String lastDirectory = new File(dataDirectory).getAbsolutePath(); + while (!lastDirectory.equals(parentDirectory.getAbsolutePath()) && (parentDirectory.listFiles().length == 0)) { + parentDirectory.delete(); + parentDirectory = parentDirectory.getParentFile(); + } + } + } + // // PRIVATE METHODS //