From 704200025c8119d31fd3b79657777481f513af40 Mon Sep 17 00:00:00 2001 From: "Tristan B. Kildaire" Date: Mon, 27 Jul 2020 21:42:45 +0200 Subject: [PATCH] Implemented 'deleteFolder' --- source/client/mail.d | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/source/client/mail.d b/source/client/mail.d index c20fa1d..aebbf18 100644 --- a/source/client/mail.d +++ b/source/client/mail.d @@ -92,6 +92,9 @@ public final class Mailbox mailFile.close(); } + /** + * Deletes the given message in the given folder path + */ public void deleteMessage(Folder folder, string mailID) { /* Generate the filename to store the message under */ @@ -210,6 +213,29 @@ public final class Folder public void deleteFolder() { /* TODO: Implement me */ + + /* Get a list of all files in this folder */ + Mail[] messages = getMessages(); + + /* Delete all messages in this folder */ + foreach(Mail message; messages) + { + message.deleteMessage(); + } + + /* Get a list of all folders in this folder */ + Folder[] folders = getFolders(); + + /** + * Delete all child folders of the current + */ + foreach(Folder child; folders) + { + child.deleteFolder(); + } + + /* Delete this folder */ + rmdir(folderPath); } /**