From 95bb43f0a415ea77f7512a15757590c686dcdc86 Mon Sep 17 00:00:00 2001 From: Adrien Ufferte Date: Tue, 8 Jul 2025 16:52:10 +0200 Subject: [PATCH] Recursive delete directory --- .../language_selection/package_downloader.gd | 35 +------------------ sources/utils/autoloads/utils.gd | 8 +++++ 2 files changed, 9 insertions(+), 34 deletions(-) diff --git a/sources/menus/language_selection/package_downloader.gd b/sources/menus/language_selection/package_downloader.gd index 86949ac6..0e5d83ff 100644 --- a/sources/menus/language_selection/package_downloader.gd +++ b/sources/menus/language_selection/package_downloader.gd @@ -154,7 +154,7 @@ func _copy_data(this: PackageDownloader) -> void: ) # Cleanup previous files - delete_directory_recursive(ProjectSettings.globalize_path(current_language_path)) + Utils.delete_directory_recursive(ProjectSettings.globalize_path(current_language_path)) # Extract the archive var subfolder: String = unzipper.extract(language_zip_path, USER_LANGUAGE_RESOURCES_PATH, false) @@ -171,39 +171,6 @@ func _copy_data(this: PackageDownloader) -> void: this.call_thread_safe("_go_to_next_scene") -func delete_directory_recursive(path: String) -> void: - var dir: DirAccess = DirAccess.open(path) - if dir == null: - Logger.error("PackageDownloader: Folder does not exists: %s" % path) - return - - if dir.list_dir_begin() != OK: - dir.list_dir_end() - Logger.error("PackageDownloader: Error while reading folder: %s" % path) - return - - var err: Error - var file_name: String = dir.get_next() - while file_name != "": - var full_path: String = path.path_join(file_name) - if dir.current_is_dir(): - delete_directory_recursive(full_path) - else: - err = dir.remove(full_path) - if err != OK: - Logger.error("PackageDownloader: Error " + error_string(err) + " while deleting file: %s" % full_path) - file_name = dir.get_next() - - dir.list_dir_end() - - # Delete the folder itself - err = DirAccess.remove_absolute(path) - if err != OK: - Logger.error("PackageDownloader: Error " + error_string(err) + " while deleting folder: %s" % path) - else: - Logger.info("PackageDownloader: ✅ Folder deleted: %s" % path) - - func _show_error(error: int) -> void: error_popup.content_text = ERROR_MESSAGES[error] error_popup.show() diff --git a/sources/utils/autoloads/utils.gd b/sources/utils/autoloads/utils.gd index ce61aa07..8ff1c248 100644 --- a/sources/utils/autoloads/utils.gd +++ b/sources/utils/autoloads/utils.gd @@ -29,3 +29,11 @@ func delete_dir(path: String) -> void: for subfolder: String in dir.get_directories(): delete_dir(path.path_join(subfolder)) dir.remove(subfolder) + +func delete_directory_recursive(path: String) -> void: + delete_dir(path) + var err: Error = DirAccess.remove_absolute(path) + if err != OK: + Logger.error("Utils: Error " + error_string(err) + " while deleting folder: %s" % path) + else: + Logger.info("Utils: Folder deleted: %s" % path)