]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add Exists check and try catch when creating replay dir (#20852)
authorDrSmugleaf <DrSmugleaf@users.noreply.github.com>
Mon, 9 Oct 2023 06:34:10 +0000 (23:34 -0700)
committerGitHub <noreply@github.com>
Mon, 9 Oct 2023 06:34:10 +0000 (23:34 -0700)
Content.Server/GameTicking/GameTicker.Replays.cs

index 78a8182ce6f5dd0382341a11b1286de17a76918b..7e1a553a8568027de6363f20e7c4d82a97af5a84 100644 (file)
@@ -94,7 +94,17 @@ public sealed partial class GameTicker
         _sawmillReplays.Info($"Moving replay into final position: {state.MoveToPath}");
         _taskManager.BlockWaitOnTask(_replays.WaitWriteTasks());
         DebugTools.Assert(!_replays.IsWriting());
-        data.Directory.CreateDir(state.MoveToPath.Value.Directory);
+
+        try
+        {
+            if (!data.Directory.Exists(state.MoveToPath.Value.Directory))
+                data.Directory.CreateDir(state.MoveToPath.Value.Directory);
+        }
+        catch (UnauthorizedAccessException e)
+        {
+            _sawmillReplays.Error($"Error creating replay directory {state.MoveToPath.Value.Directory}: {e}");
+        }
+
         data.Directory.Rename(data.Path, state.MoveToPath.Value);
     }