From: DrSmugleaf Date: Mon, 9 Oct 2023 06:34:10 +0000 (-0700) Subject: Add Exists check and try catch when creating replay dir (#20852) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=be346c3cf3a4c47d496c0be1c8fbce908eabbdfc;p=space-station-14.git Add Exists check and try catch when creating replay dir (#20852) --- diff --git a/Content.Server/GameTicking/GameTicker.Replays.cs b/Content.Server/GameTicking/GameTicker.Replays.cs index 78a8182ce6..7e1a553a85 100644 --- a/Content.Server/GameTicking/GameTicker.Replays.cs +++ b/Content.Server/GameTicking/GameTicker.Replays.cs @@ -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); }