From be346c3cf3a4c47d496c0be1c8fbce908eabbdfc Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Sun, 8 Oct 2023 23:34:10 -0700 Subject: [PATCH] Add Exists check and try catch when creating replay dir (#20852) --- Content.Server/GameTicking/GameTicker.Replays.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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); } -- 2.51.2