From fb0446a1c362e81e6cb2faa49bc66aed54460fd3 Mon Sep 17 00:00:00 2001 From: scgm0 <2682963017@qq.com> Date: Thu, 12 Sep 2024 07:12:01 +0800 Subject: [PATCH] C#: Clear existing data directory extracted from PCK --- modules/mono/godotsharp_dirs.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/mono/godotsharp_dirs.cpp b/modules/mono/godotsharp_dirs.cpp index 80e44011be5a..f6faf7df83ff 100644 --- a/modules/mono/godotsharp_dirs.cpp +++ b/modules/mono/godotsharp_dirs.cpp @@ -192,9 +192,15 @@ class _GodotSharpDirs { } } if (!has_data) { - // 3. Extract the data to a temporary location to load from there. - Ref da = DirAccess::create_for_path(packed_path); - ERR_FAIL_NULL(da); + // 3. Extract the data to a temporary location to load from there, delete old data if it exists but is not up-to-date. + Ref da; + if (DirAccess::exists(data_dir_root)) { + da = DirAccess::open(data_dir_root); + ERR_FAIL_NULL(da); + ERR_FAIL_COND(da->erase_contents_recursive() != OK); + } + da = DirAccess::create_for_path(packed_path); + ERR_FAIL_COND(da.is_null()); ERR_FAIL_COND(da->copy_dir(packed_path, data_dir_root) != OK); } api_assemblies_dir = data_dir_root;