Recursive delete directory

This commit is contained in:
Adrien Ufferte
2025-07-08 16:52:10 +02:00
parent 6602eaa4cd
commit 95bb43f0a4
2 changed files with 9 additions and 34 deletions
@@ -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()
+8
View File
@@ -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)