From 2b6a918aea7d6e4e62c080860278503f3ea7e656 Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Wed, 12 Apr 2023 13:51:06 +0200 Subject: [PATCH] delete last 5% of files once storage reaches limit --- MareSynchronos/FileCache/PeriodicFileScanner.cs | 7 +++++-- MareSynchronos/MareSynchronos.csproj | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/MareSynchronos/FileCache/PeriodicFileScanner.cs b/MareSynchronos/FileCache/PeriodicFileScanner.cs index bdd8af3..f36abb9 100644 --- a/MareSynchronos/FileCache/PeriodicFileScanner.cs +++ b/MareSynchronos/FileCache/PeriodicFileScanner.cs @@ -106,11 +106,14 @@ public sealed class PeriodicFileScanner : DisposableMediatorSubscriberBase } }); - if (FileCacheSize < (long)(_configService.Current.MaxLocalCacheInGiB * 1024d * 1024d * 1024d)) return false; + var maxCacheInBytes = (long)(_configService.Current.MaxLocalCacheInGiB * 1024d * 1024d * 1024d); + + if (FileCacheSize < maxCacheInBytes) return false; var allFiles = Directory.EnumerateFiles(_configService.Current.CacheFolder) .Select(f => new FileInfo(f)).OrderBy(f => f.LastAccessTime).ToList(); - while (FileCacheSize > (long)(_configService.Current.MaxLocalCacheInGiB * 1024d * 1024d * 1024d)) + var maxCacheBuffer = maxCacheInBytes * 0.05d; + while (FileCacheSize > maxCacheInBytes - (long)maxCacheBuffer) { var oldestFile = allFiles[0]; FileCacheSize -= oldestFile.Length; diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj index 619485f..7fc93fd 100644 --- a/MareSynchronos/MareSynchronos.csproj +++ b/MareSynchronos/MareSynchronos.csproj @@ -3,7 +3,7 @@ - 0.8.23 + 0.8.24 https://github.com/Penumbra-Sync/client