Просмотр исходного кода

fix(manifest): improve file copy handling in resource installation

Explicitly check for destination file existence and delete if present before
copying to ensure clean file operations. Changed copy flags from OVERWRITE
to ALL_METADATA to properly preserve file attributes during resource
installation in the manifest processing.
clanker 10 месяцев назад
Родитель
Сommit
48f3b1c564
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      src/lib/Manifest.vala

+ 4 - 1
src/lib/Manifest.vala

@@ -422,7 +422,10 @@ namespace Usm {
                     
                     
                     // Don't copy an alternative format resource if it has the same path as the non-alternative resource
                     // Don't copy an alternative format resource if it has the same path as the non-alternative resource
                     if(source_exists && !dry_run && (!is_alternative_format_resource  || !alternative_format_resource_path_conflicts)) {
                     if(source_exists && !dry_run && (!is_alternative_format_resource  || !alternative_format_resource_path_conflicts)) {
-                        src.copy(dest, FileCopyFlags.OVERWRITE, null, (c, t) => callback(resource.key, resources_installed, resource_count, (float)c / (float)t));
+                        if(dest.query_exists()) {
+                            dest.delete();
+                        }
+                        src.copy(dest, FileCopyFlags.ALL_METADATA, null, (c, t) => callback(resource.key, resources_installed, resource_count, (float)c / (float)t));
                     }
                     }
                 }
                 }
                 else if(resource.value.file_type == Usm.ManifestFileType.DIRECTORY) {
                 else if(resource.value.file_type == Usm.ManifestFileType.DIRECTORY) {