Răsfoiți Sursa

Open FileStream with FileMode.Create instead of FileMode.OpenOrCreate

> The OpenWrite method opens a file if one already exists for the file path,
    or creates a new file if one does not exist. For an existing file,
    it does not append the new text to the existing text. Instead,
    it overwrites the existing characters with the new characters.
    If you overwrite a longer string
    (such as "This is a test of the OpenWrite method") with a shorter string
    (such as "Second run"), the file will contain a mix of the strings
    ("Second runtest of the OpenWrite method").

Ref: https://docs.microsoft.com/en-us/dotnet/api/system.io.file.openwrite?view=net-5.0#remarks
Bond_009 4 ani în urmă
părinte
comite
1752423e52

+ 3 - 4
Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs

@@ -177,7 +177,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
 
 
                 lock (_lastExecutionResultSyncLock)
                 lock (_lastExecutionResultSyncLock)
                 {
                 {
-                    using FileStream createStream = File.OpenWrite(path);
+                    using FileStream createStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
                     JsonSerializer.SerializeAsync(createStream, value, _jsonOptions);
                     JsonSerializer.SerializeAsync(createStream, value, _jsonOptions);
                 }
                 }
             }
             }
@@ -577,9 +577,8 @@ namespace Emby.Server.Implementations.ScheduledTasks
             var path = GetConfigurationFilePath();
             var path = GetConfigurationFilePath();
 
 
             Directory.CreateDirectory(Path.GetDirectoryName(path));
             Directory.CreateDirectory(Path.GetDirectoryName(path));
-
-            var json = JsonSerializer.Serialize(triggers, _jsonOptions);
-            File.WriteAllText(path, json, Encoding.UTF8);
+            using FileStream createStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
+            JsonSerializer.SerializeAsync(createStream, triggers, _jsonOptions);
         }
         }
 
 
         /// <summary>
         /// <summary>