From d0fc189fa46af2ed8725fcd1db965d683153d433 Mon Sep 17 00:00:00 2001 From: Archi Date: Thu, 29 Dec 2022 22:57:20 +0100 Subject: [PATCH] Make cleanup of old version after update more robuts --- ArchiSteamFarm/Core/ASF.cs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/ArchiSteamFarm/Core/ASF.cs b/ArchiSteamFarm/Core/ASF.cs index b89d2e35e..8fef9573f 100644 --- a/ArchiSteamFarm/Core/ASF.cs +++ b/ArchiSteamFarm/Core/ASF.cs @@ -206,13 +206,25 @@ public static class ASF { if (Directory.Exists(backupDirectory)) { ArchiLogger.LogGenericInfo(Strings.UpdateCleanup); - // It's entirely possible that old process is still running, wait a short moment for eventual cleanup - await Task.Delay(5000).ConfigureAwait(false); + for (byte i = 0; (i < WebBrowser.MaxTries) && Directory.Exists(backupDirectory); i++) { + if (i > 0) { + // It's entirely possible that old process is still running, wait a short moment for eventual cleanup + await Task.Delay(5000).ConfigureAwait(false); + } - try { - Directory.Delete(backupDirectory, true); - } catch (Exception e) { - ArchiLogger.LogGenericException(e); + try { + Directory.Delete(backupDirectory, true); + } catch (Exception e) { + ArchiLogger.LogGenericDebuggingException(e); + + continue; + } + + break; + } + + if (Directory.Exists(backupDirectory)) { + ArchiLogger.LogGenericError(Strings.WarningFailed); return null; }